这个问题可能有些简单,但我可以冒险在这里发布这个问题来解决我的困惑。
实际上,我的问题是我们只能将地址分配给指针,如下所示:-
但是我们可以像这样将 NULL 赋值给 p :
我知道这意味着p指向空值,但根据规则我们只能将地址分配给指针,而0是一个整数。 所以这不违反规则吗?
谢谢。
实际上,我的问题是我们只能将地址分配给指针,如下所示:-
int *p,a;
p = &a; // OK
p = 1; // Error because you cannot assign integer literal to p*
但是我们可以像这样将 NULL 赋值给 p :
p = NULL;
实际上,NULL是一个宏,其值为0,在编译器编译此代码之前,预处理器会将其替换为0。因此,在替换后,它看起来像这样:
p = 0;
我知道这意味着p指向空值,但根据规则我们只能将地址分配给指针,而0是一个整数。 所以这不违反规则吗?
谢谢。