gpt4 book ai didi

c - 为什么这个 C 程序打印字符 2?

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

int main(void)   
{
char c='012';
printf("%c",c);
return 0;
}

为什么打印 2?

最佳答案

'012' 是一个多字符常量,它是 int 类型,但具有实现定义值。 (为避免疑义,'0' 在 C 中也是一个 int 类型。)

如果 charunsigned,那么您将获得该 int 的最低有效 CHAR_BIT 位作为最后结果。如果 charsigned,那么该 intchar 的转换行为将由实现定义。

在您的情况下,常量值似乎是 '0' * 256 * 256 + '1' * 256 + '2',并将其转换为 char 实际上是将结果取模 256。

关于c - 为什么这个 C 程序打印字符 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48667552/

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