我可以使用 NULL
指针来替代 0
的值吗?
这样做有什么问题吗?
比如说:
int i = NULL;
作为代替:int i = 0;
作为实验,我编译了以下代码:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
输出:
0
实际上,它给了我这个警告,这个警告本身是完全正确的:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
但结果仍然等价。
- 我是否会涉及到“未定义行为”?
- 可以这样使用
NULL
吗? - 在算术表达式中使用
NULL
作为数值有问题吗? - C++中对于这种情况的结果和行为是什么?
我已经阅读了NULL,'\0'和 0 之间的区别是什么的答案,但我没有从那里获得简明的信息,是否可以合法地使用NULL
作为赋值和其他算术操作中的值。