#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下系统的命令 让程序暂停执行 方便观察程序的执行结果
}
C语言 int** 二重指针的理解
最新推荐文章于 2023-02-25 20:22:47 发布