#include <stdio.h>
void f(int ** q) {//1.q是一个指针变量,因为本机是64位操作系统,所以该变量占8个字节
int i = 5;
//2.q是 传入的是指针变量p的地址,所以*q = p; 可用于存放一个int类型的地址
*q = &i;//p = &i;
}
int main(void) {
int *p;
f(&p);
printf("%d\n",*p);//3.本句语法没有错误,但是逻辑上有错误(如下分析)
//我的编辑器软件并不严谨,并没有报错,因为是静态为函数分配内存,按理说执行完第10行,内存就被释放了,何来*p = 5输出之说
return 0;
}
编辑器不严谨导致的错误输出:
5
--------------------------------
Process exited after 0.03562 seconds with return value 0
请按任意键继续. . .