简单c语言小问题

答案为啥是10?... 答案为啥是10? 展开
 我来答
帅樱艾沛柔
2020-06-22 · TA获得超过3834个赞
知道大有可为答主
回答量:3073
采纳率:32%
帮助的人:450万
展开全部
因为c[]和i是在一个Union里,它们同用一个存储空间。你给char数组c赋值,c[0]=10(十六进制:0x0a),c[1]=1(十六进制:0x01)。然后访问i,实际是按short(一次取16位)来访问它们共同的存储空间,所以取得的值是0x010a,对应的十进制就是266。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最大的宝宝
2020-06-21 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:387万
展开全部
c = 8;

条件判断中的c++导致c = 9
最后执行++c导致c = 10,此即为最终结果
追问
请问条件判断中的c++为什么第一轮就执行了呢,难道不是先执行一轮c的初始值再自增1吗?
追答
--a != c++这一句,a先自减,而c保持不变,相当于8 != 8。之后再执行c++,因8 != 8不成立,所以执行++c。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式