我一直在写类似的东西
char *x=NULL;
假设
char *x=2;
将创建一个char
指向地址2 的指针。
但是,在《 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;
}
确实打印
一片空白
当我编译并运行它时,我担心我依赖未定义的行为,或者至少是未指定的行为,因此我应该编写
char *x;
x=NULL;
代替。
int *x = whatever;
和做什么之间有一个非常令人困惑的区别int *x; *x = whatever;
。int *x = whatever;
实际上表现得很int *x; x = whatever;
,不是*x = whatever;
。