gpt4 book ai didi

c - 复合字符数组和字符串文字之间是否存在任何内部差异?

转载 作者:行者123 更新时间:2023-12-04 01:26:46 25 4
gpt4 key购买 nike

这之间有什么内部差异吗:

(const char[]){'H', 'e', 'l', 'l', 'o', 0}

"Hello"

在 C 中?
我注意到用引号声明的字符串文字是由 strings unix 命令获取的,但其他的不是。导致这种情况的内部差异是什么?

最佳答案

字符串文字始终具有静态存储持续时间,而 block 范围内的复合文字具有自动存储持续时间。

字符串文字在初始值设定项中具有特殊地位,例如

char x[5] = "foo";  // ok
char y[5] = (char[]){'f','o','o','\0'}; // error

字符串文字不一定具有唯一地址,例如"foo"== "foo" 可能为真也可能不为真,"foo"+ 1 == "oo" 可能为真也可能不为真,而类似的比较因为复合文字必须为假。

关于c - 复合字符数组和字符串文字之间是否存在任何内部差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61765882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com