gpt4 book ai didi

C 字符串比较 - 等于 true

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:42 25 4
gpt4 key购买 nike

也许是个奇怪的问题..

我目前正在努力理解为什么以下等同于 true,即“Hello World”被打印到控制台?我一直认为 C 中的字符串比较必须使用 strcmp 或类似的方法来完成。

char *a = "Hello";
char *b = "Hello";

if(a == b)
{
printf("Hello World\n");
}

我还认为只有地址相等时这才等于 true 吗?它们是文字吗?

附言。是的,这几乎与作业无关,但我只是想出了以上内容。 - 这不会以任何方式回答作业。

最佳答案

该语言对字符串文字的存储位置和存储方式没有任何要求。您所知道的是它们具有静态存储持续时间,并且您不得尝试更改数据。标准中没有任何内容要求两个不同的字符串文字具有不同的地址,并且实现对字符串文字数据进行重复数据删除是完全合理的。

另一方面,不需要将两个相同的字符串文字存储在同一地址,因此比较地址毫无意义。始终使用 strcmp 比较字符串的内容

关于C 字符串比较 - 等于 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593115/

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