C语言中sizeof函数使用的坑怎么解决
发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,这篇文章主要介绍"C语言中sizeof函数使用的坑怎么解决"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C语言中sizeof函数使用的坑怎么解决"文章能帮助大
千家信息网最后更新 2025年01月29日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安全错误
数据库的锁怎样保障安全
易橙互联网络科技有限公司
网络安全的义务和权利
数据库手写字符
澳洲国立大学软件开发专业
计算机软件开发质量影响因素
软件开发开发薪资
历史数据库作用是什么原因
娄底软件开发职业技术学校
怎样速成数据库
护苗 网络安全课之
mac上的数据库软件
onenet需要建数据库么
商战小说软件开发
altium离线数据库
江苏网信办网络安全协调处
c++ 开发软件开发
rails数据库连接不上
网络安全什么展
数据库怎么保存一棵树
华为手机软件开发自学hms
欧洲杯录像软件开发
常见的软件开发类型
玄武区网络技术服务经验丰富
分子生物信息数据库定义
服务器可以安装安全狗吗
网络安全推进会发言
服务器是机柜吗
联想SR950服务器能否带显卡
陕西戴尔服务器虚拟化迁移云空间
关系型数据库主键唯一实体