gpt4 book ai didi

C++ 字符串大小错误

转载 作者:太空狗 更新时间:2023-10-29 23:20:57 25 4
gpt4 key购买 nike

char a[3]={'U','S','A'};
cout<<a;

当 a 是长度为 3 的字符数组并且没有内存 '\0' 时,如何打印 USA
'\0' 将存储在哪里?

最佳答案

cout 将打印直到遇到\0。

现在如果恰好在物理内存中,你的数组旁边的字节的值为0,cout会把它作为终止符。它可能发生,因为下一个字节可能有任何垃圾值,包括 0。

但是,不能保证数组边界的旁边是什么。在一种情况下,您发现 0 并不意味着它也会在其他情况下继续。实际结果是未定义的行为,在这种特殊情况下,如果数组以 null 终止,则与 cout 的预期行为相匹配。

关于C++ 字符串大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22387783/

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