gpt4 book ai didi

c - 为什么这个程序会给出以下输出?

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

当我运行这个程序时,它给出了输出

1, 4, 4

为什么 sizeof('A') 给出 4 个字节? “A”是否被视为整数?如果是,那为什么?

#include<stdio.h>

int main()
{
char ch = 'A';
printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14f));
return 0;
}

此外,当我更换

printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14f));

与,

printf("%d, %d, %d", sizeof(ch), sizeof("A"), sizeof(3.14f));

它给出了输出

1, 2, 4

这更令人困惑。

P.S.:我使用 compileonline.com 来测试这段代码。

最佳答案

在C语言中,'A'的类型是int,这就解释了为什么sizeof('A')4 (因为显然您的平台有 32 位 int)。有关详细信息,请参阅 Size of character ('a') in C/C++

当编译为 C++ 时,第一个程序打印 1 1 4

"A" 是一个字符串文字,由字母 A 后跟 NUL 字符组成。因为它有两个字符长,所以 sizeof("A")2

关于c - 为什么这个程序会给出以下输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643609/

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