int *p = NULL;
此语句什么意思?没错,就是定义了一个整型指针变量P,并进行了初始化。
那么,现在有个问题。它初始化了什么东西?NULL?
NULL又是什么?(这里需要注意)
NULL是被宏定义成 0 。即为 define NULL 0
很多系统下除了NULL之外,还有NUL(VC++6.0上提示说不认识NUL。error C2065: 'NUL' : undeclared identifier )NUL是ASCII码表的第一个字符,表示的是空字符,其ASCII码值为0;虽然都为0,但表示的意思完全不一样。同样,NULL和0表示的意思也完全不一样。一定不要混淆。
既然我们知道NULL是0,就是说指针变量P初始化为0了。
在前一篇新手谈C指针01_指针?中我们已经说过,指针变量内任何数据都会被当作地址进行处理。所以,P 里存储的是地址0x00000000。而不是把 *p 里的内容初始化为0。
其实,在上一篇博文也提到了。我