C语言打洞访问基本原理

来源:互联网 发布:闲鱼申请淘宝介入几天 编辑:程序博客网 时间:2024/05/18 02:46

在学习C语言的过程中,指针是非常重要的一个知识。本文档分析的就是指针打洞的一个小实例。

实验目的:连续定义a,b,c三个int型变量,如何用变量b直接访问其他两个变量,并输出。

         实验环境:Windows系统下的dev C编译器。

         解析:连续定义三个变量,在C语言的学习中,我们知道,临时定义变量是存储在栈里的,而连续定义的变量之间的地址也是连续的。三个变量中,我们只要知道其中一个变量,就可以通过地址之间的空间打洞去访问其他的变量(这里的&是取地址符号)。

实例代码:

 

#include<stdio.h>

 

int main()

{

         int a=1, b=2, c=3;

         printf("a, b, c 的地址分别是:%d, %d, %d\n", &a, &b, &c);

         printf("a = %d\n", *(&b+1));

         printf("c = %d\n", *(&b-1));

         return 0;

}

 

  

 

 运行结果:

 

 

 

 

 

 

 

 

 



1 0
原创粉丝点击