相关疑难解决方法(0)

在一个C表达式中,unsigned int和signed int存在,哪种类型将被提升为什么类型?

我有一个关于C语言标准中的数据类型提升规则的查询.C99说:

C整数提升还要求"如果int可以表示原始类型的所有值,则该值将转换为int;否则,它将转换为unsigned int".

我的问题是在C语言表达式的位置unsigned int和signed int存在的情况下,哪种类型将被提升为什么类型?

例如int,不能代表unsigned int(值大于MAX_INT值)的所有值,而unsigned int不能代表-ve值,那么在这种情况下什么类型被提升为什么?

c integer-promotion

25
推荐指数
2
解决办法
3万
查看次数

为什么sizeof(char + char)返回4?

char  a, b;     
printf("%d", sizeof(a+b));
Run Code Online (Sandbox Code Playgroud)

printf写入屏幕的内容是什么?

我认为因为sizeof(char)= 1,sizeof(a + b)也将是1,但结果是4.我不明白这一点,如果我们添加两个字符,为什么写4?

c sizeof char

9
推荐指数
2
解决办法
485
查看次数

标签 统计

c ×2

char ×1

integer-promotion ×1

sizeof ×1