C语言之刷到的怪题(i与sizeof(i)比较大小)

这个题目一般都是选择输出<。为什么呢?因为i是一个全局变量,并且没有初始化,那么i的值就等于0。i--之后就是-1了。而sizeof(i)求出的就是整形变量对应的大小4个字节。-1<4,因此就选择 输出<。其实不然,这个sizeof的返回值对应的是一个unsigned long long,而我们知道这个int与unsigned long long 数在比较大小时,int数会进行表达式求值的提升(不知道这个算数转换的小伙伴,可以点击下方链接(在文末)查看。),转化为unsigned long long数,我们只需要知道这时的-1,被转化为了一个无符号数。而-1的补码是32个1,想一想这个数得有多大,根本就不是4可比的。

不知道这个算数转换的小伙伴,可以点击下方链接查看。

操作符详解(下)-CSDN博客

相关推荐
SmartRadio9 分钟前
MK8000(UWB射频芯片)与DW1000的协议适配
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·dw1000
guygg8810 分钟前
基于捷联惯导与多普勒计程仪组合导航的MATLAB算法实现
开发语言·算法·matlab
fengfuyao98511 分钟前
遗传算法与粒子群算法求解非线性函数最大值问题
算法
LeetCode天天刷25 分钟前
【软件认证】比特翻转【滑动窗口】
算法
源代码•宸27 分钟前
Leetcode—1123. 最深叶节点的最近公共祖先【中等】
经验分享·算法·leetcode·职场和发展·golang·dfs
s砚山s31 分钟前
代码随想录刷题——二叉树篇(十三)
数据结构·算法
alphaTao35 分钟前
LeetCode 每日一题 2026/1/5-2026/1/11
算法·leetcode
山上三树36 分钟前
详细介绍 C 语言中的 #define 宏定义
c语言·开发语言·算法
麻雀1231 小时前
win7中编译qemu-system-arm,仿真arm设备
c语言·eclipse
黎雁·泠崖1 小时前
二叉树知识体系全梳理:从基础到进阶一站式通关
c语言·数据结构·leetcode