如何理解char*fptr=NULL,*field;?

如何理解char*fptr=NULL,*field;?,c,pointers,ansi-c,C,Pointers,Ansi C,我想知道下面的表达是什么意思: char *fptr = NULL, *field; 谢谢 声明一个char指针fptr并将其初始化为NULL,然后声明另一个char指针字段。NULL是((void*)0)只是一个无效的指针值,您可以使用它来验证指针是否有效 将NULL分配给指针有助于避免取消对未初始化指针的引用,例如malloc在失败时返回NULL 这样,如果您在调用malloc后检查指针是否为NULL,则可以防止未定义的行为。不要将NULL视为地址,而是视为哨兵值。特别是它可能不是地址0。

我想知道下面的表达是什么意思:

char *fptr = NULL, *field;

谢谢

声明一个
char
指针
fptr
并将其初始化为
NULL
,然后声明另一个
char
指针
字段
NULL
((void*)0)
只是一个无效的指针值,您可以使用它来验证指针是否有效

NULL
分配给指针有助于避免取消对未初始化指针的引用,例如
malloc
在失败时返回
NULL


这样,如果您在调用
malloc
后检查指针是否为
NULL
,则可以防止未定义的行为。

不要将
NULL
视为地址,而是视为哨兵值。特别是它可能不是地址0。哦,谢谢!我现在明白了,我一直在看,不知道这是两个声明。再次感谢@有关逗号运算符的详细信息,请阅读user145190。代码是在函数内部还是外部找到的?区别很重要,因为如果它在内部,则
字段
未初始化,并且在初始化之前只能安全地用作赋值的目标(或通过指针传递)。如果它在函数外部,那么
字段
被隐式初始化——也被初始化为null;字符*字段