在我看来,当终止一个字符串时,逻辑上char c=0相当于char c='\0',因为"null"(ASCII 0)字节是0,但通常人们倾向于使用'\0'.这纯粹是出于偏好,还是应该是一种更好的"实践"?

什么是首选?


EDIT: K&R says:"字符常量'\0'表示值为零的字符,即空字符.通常用'\0'代替0来强调某些表达式的字符性质,但数值仅为0.

推荐答案

http://en.wikipedia.org/wiki/Ascii#ASCII_control_code_chart

Binary   Oct  Dec    Hex    Abbr    Unicode  Control char  C Escape code   Name
0000000  000  0      00     NUL     ␀       ^@            \0              Null character

没有什么不同,但更习惯用的是'\0'.

将其记为char c = 0;可能意味着您打算将其用作数字(例如计数器).'\0'是明确的.

C++相关问答推荐

uintPtr_t上的算术

两个看似相同的代码的不同行为

rSP堆栈指针在返回函数调用的值时有任何用途吗?

如何在C中只使用一个带双方括号([i][j])访问语法的malloc来分配动态大小的2d数组?

需要大整数和浮点数.使用long long int和long double

模拟shell并运行.sh文件

为什么GCC C23中的关键字FALSE不是整数常量表达式?

Setenv在c编程中的用法?

我怎么才能用GCC编译一个c库,让它包含另一个库呢?

限制不同类型的限定符

进程在写入管道时挂起

添加函数会 destruct 嵌入式C代码(无IDE)

当b是无符号字符时,int a=(b<;<;2)>;>;2;和int a=b&;0x3F;之间有什么区别?

C堆栈(使用动态数组)realloc内存泄漏问题

使用ld将目标文件链接到C标准库

C语言中的数字指针

C:如何将此代码转换为与数组一起使用?

C语言中奇怪的输出打印数组

添加/删除链表中的第一个元素

与 C 相比,C++ 中无副作用的无限循环的好处是 UB?