C++ 空终止字符串:使用'\0';还是仅仅0?

C++ 空终止字符串:使用'\0';还是仅仅0?,c++,c,null-terminated,C++,C,Null Terminated,如果我需要空终止字符串,我应该使用\0还是简单的0就足够了 使用它们之间有什么区别吗 char a[5]; a[0] = 0; 及 或者\0只是为了明确我在这里终止为null,但对于编译器来说是一样的?'\0'与0完全相同,尽管类型不同'\0'只是一个charliteral的表示形式。类型char可以从普通int文本初始化 因此,实际上不可能知道什么更好,只要记住在代码中始终使用它。这是一样的。看看ascii表 从我的观点来看,最好使用“\0”,因为您可以明确地说字符串的结尾 当您读取代码时,

如果我需要空终止字符串,我应该使用
\0
还是简单的
0
就足够了

使用它们之间有什么区别吗

char a[5];
a[0] = 0;


或者
\0
只是为了明确我在这里终止为null,但对于编译器来说是一样的?

'\0'
0
完全相同,尽管类型不同<代码>'\0'只是一个
char
literal的表示形式。类型
char
可以从普通
int
文本初始化


因此,实际上不可能知道什么更好,只要记住在代码中始终使用它。

这是一样的。看看ascii表

从我的观点来看,最好使用“\0”,因为您可以明确地说字符串的结尾

当您读取代码时,这会有所帮助(例如,指针使用NULL而不是0)。

'\0'是值为0的。所以他们之间没有区别


旁注:如果处理字符串,则应使用。

两者将生成相同的机器代码,因为
0
将转换为字符值
0
,而
'\0'
只是编写字符值
0
的另一种方式。后者显然是一个字符,因此它将表明您并不是无意中想写
'0'
,但除此之外,它最终是完全相同的

使用“\0”还是仅使用0

价值上没有差别。
在C语言中,类型没有区别:两者都是
int

在C++中,它们有不同的类型:<代码> char < />代码> <代码> int >代码>。因此边缘转到
'\0'
,因为不涉及类型转换

不同的样式指南相互促进<为清晰起见,代码>'\0'<代码>0以避免混乱


正确答案:使用基于团队编码标准/准则的样式。如果您的团队没有这样的指南,请制定一个。最好使用一种,而不是使用不同的样式。

C++,只使用<代码> STD::String < /C> >忘记C字符串。“看ASCII表。”EBCDIC字符表怎么样?细节:在C中,
'\0'
更恰当地称为字符常量。只有C指定的文字是字符串文字和复合文字。注意:在C中,像
'\0'
这样的字符常量属于
int
类型,而不是
char
。注意:在C中,像
'\0'
这样的字符常量属于
int
类型,而不是
char
char a[5];
a[0] = '\0';