gpt4 book ai didi

c - 4 字节字符串与作为字符串读取的 4 字节整数

转载 作者:行者123 更新时间:2023-11-30 17:20:12 25 4
gpt4 key购买 nike

读取由 4 个字符(包括空终止符)组成的字符串(声明为数组/指针)是否比读取整数值(按字符串读取)慢(逐字节?),如下所示:

static int val = 'C' + '+' * 256 + '+' * 256 * 256;
printf("%s", (char*)val);

最佳答案

好的答案是不要这样做!

完整的答案是:如果您的处理器使用小端字节顺序(例如:Intel 架构)并且 int 至少为 32 位,则代码的以下修改版本将产生预期的输出:

static int val = 'C' + '+' * 256 + '+' * 256 * 256;
printf("%s\n", (char*)&val);

在标准输出上输出此行:

C++

因为0x2b2b43在内存中的字节表示是0x43 0x2b 0x2b 0x00。val 的地址指向与字符数组“C++”相同的字节。强制转换不会更改地址,但会阻止编译器发出警告。

关于c - 4 字节字符串与作为字符串读取的 4 字节整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28663103/

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