首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C中,str==NULL和str[0]=='\0‘有什么区别?

在C中,str==NULL和str[0]=='\0‘有什么区别?
EN

Stack Overflow用户
提问于 2011-11-30 13:13:40
回答 6查看 12.2K关注 0票数 52

我想知道str == NULLstr[0] == '\0'之间的区别

代码语言:javascript
复制
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。

EN

回答 6

Stack Overflow用户

发布于 2011-11-30 13:17:58

str == NULL检查字符串为空指针(指向任何地方的指针)

str[0] == '\0' (如果不是空指针)检查第一个字符串元素的值为0(不带字符的字符串仅以0结尾)

票数 8
EN

Stack Overflow用户

发布于 2011-11-30 17:49:02

str == NULL表示"str指向内存地址零“(或系统上任何地址为空)。通常,这意味着根本没有字符串。

字符串== '\0‘表示“字符串的第一个字符是零”(这标志着字符串的结束)。这意味着有一个字符串,但它是空的。想一想一个空的杯子和根本没有杯子的情况;相同的想法。

在其他语言中,您可能会编写str == nullstr == ""。它们的意思是两个不同的东西。理解C语言的区别尤其重要,因为尝试使用空指针会使程序崩溃。

票数 6
EN

Stack Overflow用户

发布于 2011-11-30 20:50:10

str == NULL它表示字符串没有字符串引用,因为它的指针为空(表示字符串的地址为空)。

str[0] == '\0'--表示长度为0的字符串。

如果这个解释中有任何错误,请告诉我,或者你仍然有疑问。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8321459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档