小克学编程 2023-04-27 09:40 采纳率: 100%
浏览 16
已结题

为什么sizeof(+c)和sizeof(c)的字节个数不同(语言-c语言)

```

#include<stdio.h>
int main()
{ char c = 0;
printf("%u\n", sizeof(c));
printf("%u\n", sizeof(-c));
printf("%u\n", sizeof(+c));
return 0;
}

```的sizeof(c)和sizeof(+c)有什么区别?为什么sizeof(+c)和sizeof(c)的字节个数不同

  • 写回答

4条回答 默认 最新

  • 前网易架构师-高司机 优质创作者: 人工智能技术领域 2023-04-27 10:09
    关注

    sizeof(c) =》是sizeof运算符计算c的char类型所占内存空间,由于char是一个字节,所以结果是1
    sizeof(-c))=》是sizeof对-c表达式的结果进行求内存空间大小,-c表达式实际上是相当于0-c,0是整型,整型和字符型计算最后会按照高精度来求结果,因此最后得到的结果也是整型,整型占4字节,所以结果是4
    sizeof(+c)); 同理,+c相当于0+c,最后的结果是整型,因此结果是4

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月5日
  • 已采纳回答 4月27日
  • 创建了问题 4月27日