int *定义的有关问题,为什么是NULL
int *定义的问题,为什么是NULLC/C++ code#includestdio.hint main(){int *a,*b,*c,*dprintf(%x %x %x
int *定义的问题,为什么是NULL
C/C++ code#include<stdio.h>int main(){ int *a,*b,*c,*d; printf("%x %x %x %x\n",a,b,c,d); return 0;}
结果:400520 0 1ff9f7c0 0
为什么b和d一直是0
[解决办法][解决办法]跟启动代码调用main函数时的存储有关系
[解决办法]main函数也是被调用的,调用后通过修改堆栈指针,获得了它的局部自动变量的存储区域。这部分区域先前曾经存储过其他的内容,main的局部变量如果没有初始化,其值就是先前的东西了
[解决办法]int *a是分配在栈上的指针,你需要给他赋值一个地址,才有意义。
如果不进行初始化赋值,这样使用是没有任何意义的。
他也许会指向任意的位置,这个和操作系统,编译器无关。
[解决办法]如需要阅读该回复,请登录或注册CSDN!