c - NULL是如何终止的?

标签 c string null null-terminated

查看下面的声明

const char REASON_POR = "POR";

问题是,为什么REASON_POR会被NULL终止?

最佳答案

这个:

const char REASON_POR = "POR";

错误,因为REASON_PORchar类型的常量,并且您正在为其分配一个字符串,而您应该只分配一个字符,例如“P”。

严格来说,C 中没有字符串的赋值,而只能用 char 的地址(如果是字符串)为指针赋值。*

将(字符串的)指针分配给 char 会调用未定义的行为

<小时/>

*此规则只有一个异常(exception) - char 表(或一般的任何其他表或结构)的初始化:char str[]="foo"; 其中实际正在复制字符串。

关于c - NULL是如何终止的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46575793/

相关文章:

c++ - 为什么很多 OpenCL 示例是用 C++ 而不是用 C 编写的?

c++ - 如何在openCV中创建自己的矩阵

r - 有利于子串且与词序无关的字符串距离度量吗?

c# - 使用 Linq-To-Xml 时处理空引用

.net - 当编译器坚持认为不可能时,如何从 Newtonsoft 检查 `null`?

c - 正整数相乘结果为 0 (__int64)

linux - 使用命令行用一个逗号替换连续的空格

python - 标记文本以在 Python 中进行搜索

javascript - 像这样将代码隐藏在 null 中安全吗?

c - unix:C 中的 main() 交互、命令行、管道和重定向?