gpt4 book ai didi

c - 为什么直接将值传递给 sizeof 运算符时,数据类型的大小会不同?

转载 作者:行者123 更新时间:2023-12-02 16:30:09 25 4
gpt4 key购买 nike

#include <stdio.h>
int main() {
char a = 'A';
int b = 90000;
float c = 6.5;
printf("%d ",sizeof(6.5));
printf("%d ",sizeof(90000));
printf("%d ",sizeof('A'));
printf("%d ",sizeof(c));
printf("%d ",sizeof(b));
printf("%d",sizeof(a));
return 0;
}

输出为:

8 4 4 4 4 1

为什么相同的值输出不同?

最佳答案

与变量一样,常量也有自己的类型:

  • 6.5 :double类型的浮点常量
  • 90000 :int 类型的整型常量(如果 int 是 32 位)或 long (如果int 是 16 位)
  • 'A' :C 中 int 类型和 C++ 中 char 类型的字符常量

打印的尺寸是上述类型的尺寸。

此外,sizeof 运算符的结果具有类型 size_t。因此,打印时要使用的正确格式说明符是 %zu,而不是 %d

关于c - 为什么直接将值传递给 sizeof 运算符时,数据类型的大小会不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59273622/

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