打印
[产品应用]

一道有趣的C语言基础问题,你会算吗?

[复制链接]
781|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
豌豆爹|  楼主 | 2023-3-16 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序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语言基础了,嘿嘿···
欢迎写出详细过程,各各值的转换过程与数值,期待分享

使用特权

评论回复
沙发
tpgf| | 2023-4-12 13:13 | 只看该作者
这程序得拿着C语言的书籍挨个查优先级了

使用特权

评论回复
板凳
renzheshengui| | 2023-4-12 13:39 | 只看该作者
第一个小程序为嘛我算的结果是27呢

使用特权

评论回复
地板
wakayi| | 2023-4-12 14:01 | 只看该作者
这个这个乘法是从左到右还是从右到左啊

使用特权

评论回复
5
wowu| | 2023-4-12 14:39 | 只看该作者
能看出来为什么不一样 但是我感觉没有这么纠结  多加几个步骤几个括号就不会有歧义了

使用特权

评论回复
6
xiaoqizi| | 2023-4-12 15:26 | 只看该作者
弯弯绕绕太多了  不经常接触的 确实记不清

使用特权

评论回复
7
木木guainv| | 2023-4-12 15:51 | 只看该作者
第一个程序两边是同时进行的 第二个程序有先后的顺序了

使用特权

评论回复
8
小夏天的大西瓜| | 2023-4-15 10:28 | 只看该作者
这个就是优先级的问题,个人感觉实际使用中自己不会整这么更复杂的逻辑运算,肯定是一目了然比较好

使用特权

评论回复
9
nongshengjiang| | 2023-4-24 15:45 | 只看该作者
这样写只能说是知商问题。连他自己一下都算不出来吧

使用特权

评论回复
10
Bowclad| | 2023-5-8 23:11 | 只看该作者
这不老谭那书出的,编译器不同结果都不同

使用特权

评论回复
11
AloneKaven| | 2023-5-10 22:40 | 只看该作者
写出这种逻辑会被同事杀了吧

使用特权

评论回复
12
豌豆爹|  楼主 | 2023-5-11 09:00 | 只看该作者
nongshengjiang 发表于 2023-4-24 15:45
这样写只能说是知商问题。连他自己一下都算不出来吧

哈哈哈,

使用特权

评论回复
13
fcccc| | 2023-5-11 22:17 | 只看该作者
除了一些老学究闲的没事摆弄这些东西之外工程中没有人这么搞,要被骂睿智

使用特权

评论回复
14
guijial511| | 2023-5-13 16:01 | 只看该作者
这道题有点意思

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

513

主题

1960

帖子

5

粉丝