【习题07】和算术转换有关的代码
2026/5/22 22:10:28 网站建设 项目流程

题目:

下面代码的结果是:

#include<stdio.h>inti;intmain(){i--;if(i>sizeof(i)){printf(">\n");}else{printf("<\n");}return0;}

解析:

首先定义了一个全局变量整型变量:i没有初始化,默认为0;进入主函数,i–后i变成-1。
下面进行了一个表达式求值i > sizeof(i),我们通过表达式的求值的知识可以知道,表达式求值之前可能会进行整型提升和算术转换,我们发现iint类型sizeof(i)本质是unsigned int类型,所以此处不需要整型提升,但是操作符两端类型不一样需要进行算术转换,int要转换为unsigned int,其值变为UINT_MAX(即0xFFFFFFFF,十进制为4294967295);

此时比较就变为4294967295 > 4,结果为真,因此会执行printf(">\n");,输出>

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询