gpt4 book ai didi

c - 我的代码的输出如何是842?

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

#include <stdio.h>

int main(){
printf("%d\t",sizeof(6.5));
printf("%d\t",sizeof(90000));
printf("%d\t",sizeof('a'));

return 0;
}

当我编译代码时,输​​出将是:“842”。有人可以解释一下为什么我会得到这个输出吗?

最佳答案

首先是代码中的语法错误

printf("%d\t";sizeof('a')); 

将其更改为

printf("%zu\t",sizeof('a'));   //note the change in format specifier also
^
|
see here

然后,假设您的平台是 32 位

  • sizeof(6.5) == sizeof(double) == 8
  • sizeof(90000) == sizeof(int) == 4
  • sizeof('a') == sizeof(int) == 4

澄清一下,a 表示 97,默认为 int。因此,sizeof('a') 的值应为 4,而不是 2 或 1。

<小时/>

编辑:

要添加,您将得到 8 4 2 的输出,如果采用 16 位架构

  • sizeof(6.5) == sizeof(double) == 8
  • sizeof(90000) == sizeof(long) == 4
  • sizeof('a') == sizeof(int) == 2

关于c - 我的代码的输出如何是842?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29515695/

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