gpt4 book ai didi

c++ - 为什么要打印反向字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:05:01 28 4
gpt4 key购买 nike

我对 u6.c 的预期输出是 ABC 但在这里我得到了 CBA 为什么会这样?您能否对此进行详细解释?

union mediatech
{
int i;
char c[5];
};

int main(){
mediatech u1 = {2}; // 1
mediatech u2 = {'a'}; // 2
mediatech u3 = {2.0}; // 3
mediatech u6 = {'ABC'}; // 6

cout<<"\nu6.i = "<<u6.i<<" u6.c="<<u6.c; // o/p: u6.i=4276803 u6.c=CBA
}

最佳答案

您正在使用多字 rune 字 'ABC' 来初始化 int

如何解释多字 rune 字(这是使用 '' 的一种不常见方式)是实现定义的。具体来说,int 解释中各个字符的顺序是实现定义的。

根据 'ABC' 中字符的顺序,没有可移植的(即独立于实现的)方法来预测该程序将做什么。

来自标准(C++11,§2.14.3/1):

[...] A multicharacter literal has type int and implementation-defined value.

关于c++ - 为什么要打印反向字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17082512/

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