查看下面的声明
const char REASON_POR = "POR";
问题是,为什么REASON_POR
会被NULL
终止?
最佳答案
这个:
const char REASON_POR = "POR";
是错误,因为REASON_POR
是char
类型的常量,并且您正在为其分配一个字符串,而您应该只分配一个字符,例如“P”。
严格来说,C 中没有字符串的赋值,而只能用 char 的地址(如果是字符串)为指针赋值。*
将(字符串的)指针分配给 char
会调用未定义的行为。
*此规则只有一个异常(exception) - char 表(或一般的任何其他表或结构)的初始化:char str[]="foo";
其中实际正在复制字符串。
关于c - NULL是如何终止的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46575793/