C语言中sizeof函数使用的坑怎么解决
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"C语言中sizeof函数使用的坑怎么解决"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C语言中sizeof函数使用的坑怎么解决"文章能帮助大
千家信息网最后更新 2026年11月01日C语言中sizeof函数使用的坑怎么解决
这篇文章主要介绍"C语言中sizeof函数使用的坑怎么解决"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C语言中sizeof函数使用的坑怎么解决"文章能帮助大家解决问题。
先来看这样一段代码
int main(){int i=2;printf("%d\n",sizeof(i++));printf("%d\n",i);return 0;}非常简单的一段代码
当时我认为答案应该是
4
3
可是结果却是出乎我的意料了
这是为什么呢?
下面来仔细说一下
通过调试观察虽然确实有i++这么一句代码,但是却没有实现。说到这里很多人可能犯了和我一样的错误,认为sizeof是一个函数。
其实并非如此,sizeof其实是单目操作符的一种,可以求变量类型所占用的空间,单位是字节。
说到这里就应该和strlen函数区分开,strlen函数求的是字符串的字符数,不包括’\0’,而sizeof由于求的是字节数,会将’\0’计算上。
再说几个与sizeof这种情况类似的,避免踩坑。
逻辑操作符 &&和 ||也会产生这样的坑
来看这样一道题
int main(){ int i = 0, a = 0, b = 2, c = 3, d = 4; i = a++ && ++b && c++; //i = a++||++b||c++; printf("a = %d\nb = %d\nc = %d\n", a, b, c); return 0;}答案:
这里大家或许就有疑问了,这个b为什么不等于2呢,这个c为什么不等于4呢,这不是后置++了吗?
其实逻辑操作符在运算过程中并不会把每个对象都计算到,就拿这个举例子,由于是后置++,a此时还等于0,对于&&逻辑与来说,答案已经显而易见了,0和任何数逻辑与都等于0。所以后面的b++,和c++并没有被计算到。
我想逻辑或也是同理吧,只有有一个"真",逻辑或得到的就是"真"。
这就意味着c++并没实现。
关于"C语言中sizeof函数使用的坑怎么解决"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
函数
逻辑
语言
代码
操作符
知识
答案
字符
字节
行业
过程
c++
不同
实用
显而易见
这不
一道
例子
内容
单位
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳市人人互联网科技有限公司
博彦科技互联网金融
高科技互联网
互联网 科技
互联网金融与金融科技
互联网科技股票
睿民互联网科技
润盈互联网科技
兼蜜互联网科技
恒生科技互联网指数分析
深圳前海聚择互联网科技有限公司
昭通云南众福互联网科技有限公司
互联网企业和科技型企业
中国科技创新与世界互联网大会
深圳艾果互联网通讯科技
众安科技工业互联网合作
上海京穆互联网科技有限公司
玉溪新华互联网科技怎么选
杭州融税互联网科技有限公司
现代互联网科技公司
互联网科技公司
互联网黑科技
有格互联网科技
腾讯阿里互联网科技
深圳互联网络科技有限公司
善班互联网科技
九亚互联网科技
西安互联网科技公司
互联网高科技股票
中国互联网公司排名锤子科技