程序1:
int main( )
{
int c1,i=3;
c1=(i--)-(--i*(i= -3)*i++);
printf(" c1=%d i=%d\n",c1,i); //C1输出结果24
}
程序2:
int main( )
{
int b,c2,i=3;
b=--i*(i= -3)*i++;
c2=(i--)-(b);
printf("b=%d c2=%d i=%d\n",b,c2,i); // C2输出结果25
}
可能编译器不同输出的结果也会不同,只要你笔算出来的结果跟你编译出来的结果一样,你可以无视了,不妨看一看程序1和程序2为什么输出的结果不一样呢?什么?你看不出?看来是要回去复习复习C语言基础了,嘿嘿···
欢迎写出详细过程,各各值的转换过程与数值,期待分享
共10条
1/1 1 跳转至页


9楼
哈哈!很显然考了三部分东西!
运算符优先级;
求值顺序(和CPU架构有关);
自加自减运算符运算前后值变化情况;
这种题静下心一点一点的抠,还是没问题的!
运算符优先级;
求值顺序(和CPU架构有关);
自加自减运算符运算前后值变化情况;
这种题静下心一点一点的抠,还是没问题的!

共10条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
“我踩过的那些坑”主题活动——第002期 | |
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |