问题:
1、int *p=NULL;
*p=100;
NULL是一个宏定义,定义如下:#define NULL 0
我这样理解:第一句句的意思是定义指针变量p,p指向0x0000这个地址,第二句的意思为给0x0000这个地址赋值为100
2、假如我现在想让p指向0x0010这个地址并赋值为100,为什么我这样写会出错:
int *p=0x0010; *p=100;
但改成如下int *p=(int *)(0x0010); *p=100; 这样编译后测试正确。
从道理上讲,int *p=0x0010; 应该也是可以的把?为什么写成NULL就可以,写成0x0010就不行?! |