您的位置:首页 > 编程语言 > C语言/C++

C语言 int** 二重指针的理解

2012-11-07 21:41 225 查看
#include <stdio.h>
#include <stdlib.h>

/*&根据值找地址
*根据地址找值
*/
f(int** q){//传入的是指针的地址
int i = 3;
printf("子函数 i的地址 %#X\n",&i);
// *q   代表的就是p变量
*q = &i; //*q指向是p的值  也就是把p地址(比如&p=220005)所指向的值(也即是p)赋成了i的地址/
}
/**
使用指针的时候 不可以访问已经被系统回收掉的数据
子函数执行完毕后 子函数里面所有的局部变量都会别系统回收
*/

main()
{

// 希望在主函数里面去使用子函数里面的变量 i

// f();

// 希望在主函数里面得到子函数 里面int i变量的地址

int* p ; //存放子函数f中 int i的地址的一个变量

f(&p); //把p(比如&p=220005)的地址传入了f

// printf("主函数 i的地址 %#X\n",p);

// printf("i的值为 %d\n",*p);

system("pause");    // 调用windows下系统的命令 让程序暂停执行  方便观察程序的执行结果

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: