我想知道str == NULL
和str[0] == '\0'
之间的区别
int convert_to_float(char *str, double *num)
{
if ((str == NULL) || (str[0] == '\0'))
return(-1);
*num = strtod(str, (char **)NULL);
return(0);
}
我在Linux上用的是gcc。
发布于 2011-11-30 13:17:58
str == NULL
检查字符串为空指针(指向任何地方的指针)
str[0] == '\0'
(如果不是空指针)检查第一个字符串元素的值为0(不带字符的字符串仅以0结尾)
发布于 2011-11-30 17:49:02
str == NULL表示"str指向内存地址零“(或系统上任何地址为空)。通常,这意味着根本没有字符串。
字符串== '\0‘表示“字符串的第一个字符是零”(这标志着字符串的结束)。这意味着有一个字符串,但它是空的。想一想一个空的杯子和根本没有杯子的情况;相同的想法。
在其他语言中,您可能会编写str == null
与str == ""
。它们的意思是两个不同的东西。理解C语言的区别尤其重要,因为尝试使用空指针会使程序崩溃。
发布于 2011-11-30 20:50:10
str == NULL
它表示字符串没有字符串引用,因为它的指针为空(表示字符串的地址为空)。
str[0] == '\0'
--表示长度为0的字符串。
如果这个解释中有任何错误,请告诉我,或者你仍然有疑问。
https://stackoverflow.com/questions/8321459
复制相似问题