void func(char *p)
{
int q = 13;
p = &q;
printf("%d\n", *p);
}
void main(void)
{
int var = 20;
int *p = &var;
printf("%d\n", *p);
func(p);
printf("%d\n", *p);
}
为什么在函数退出时指针仍然是 20?我在func()
结束时跳跃,指针在其中被修改,最后printf()
,*p
值将指向堆栈中的一些随机内容。