最佳答案
我一直在写
char *x=NULL;
假设
char *x=2;
将创建一个指向地址2的 char
指针。
但是,在 GNU C 程序设计教程中,它说 int *my_int_ptr = 2;
将整数值 2
存储到 my_int_ptr
中分配的随机地址。
这似乎意味着我自己的 char *x=NULL
正在将 NULL
转换为 char
的值赋给内存中的某个随机地址。
同时
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *x=NULL;
if (x==NULL)
printf("is NULL\n");
return EXIT_SUCCESS;
}
事实上,它确实在印刷
是 NULL
当我编译并运行它时,我担心我依赖于未定义行为,或者至少是未指定的行为,我应该写
char *x;
x=NULL;
取而代之。