鱼C论坛

 找回密码
 立即注册
查看: 5090|回复: 18

Trubo和VC++6.0运行情况不一样

[复制链接]
发表于 2013-3-26 18:52:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Dilover 于 2013-3-27 00:08 编辑

刚刚小〕开始学,才到++--这里,都是下面这个程序:
  1. #include <stdio.h>

  2. void main()
  3. {
  4.         int i,j,p,q;
  5.         i = 5;
  6.         j = 5;
  7.         p = (i++)+(i++)+(i++);
  8.         q = (++j)+(++j)+(++j);
  9.         printf( "i=%d\nj=%d\np=%d\nq=%d\n",i,j,p,q);
  10. }
复制代码
VC++6.0运行效果如图
2013-3-26 星期二 18.36.22.png
跟我想的有区别,想了好久想不通,于是用Trubo C 写了一遍
2013-3-26 星期二 18.38.16.png
跟我想的一样了 = =
2013-3-26 星期二 18.38.56.png

奇怪了,编译器不同连++的处理方法都不一样么?
============================
现在时间:2013年3月27日00时05分27秒 补充
我只是想知道++i的处理方法是什么,是整个语句先处理完i=i+1三次再参与运算?
i++是在语句执行完再进行三次i=i+1?

恩恩,求大神解释,,要不然都不敢乱用
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-26 19:45:01 | 显示全部楼层
没错,因为语言没有明确规定
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-26 20:18:04 | 显示全部楼层
学习看看:lol
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-26 21:04:15 | 显示全部楼层
不同编译器有不同结果的
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-26 21:21:00 | 显示全部楼层
楼主没必要在这上面纠结:D
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-27 00:22:13 | 显示全部楼层
你只需要了解你的编译器是怎么处理的,而不是了解这样写有个必然的结果,从而知道你用什么编译器的时候如何处理你的++(--)来达到你需要的结果!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-27 23:30:44 | 显示全部楼层
标准C中,变量a与++(--)关系
a++(a--)先调用变量a 后再自加1(自减1)

++a(--a)变量先自加1,后作为表达式的值。
如果
a=5;
初始
a++就等于5
++a就等于6
每个编译器的版本不同。所以运算结果也会出现不同值。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-28 08:57:33 | 显示全部楼层
楼上正解,楼主要是想了解编译器怎么工作的可以去看看编译原理这本书。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-29 12:42:54 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-29 12:43:56 | 显示全部楼层
不同编译器对++ --的处理时不一样的,所以不用纠结于这个问题
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-29 13:00:51 | 显示全部楼层
不同的编译器对同一句编码,运算顺序是不同的,你可以看看不同顺序下是否理解的同,如,从左向右,或相反
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-3 13:14:01 | 显示全部楼层
我也奇怪那个22是怎么来的!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-3 13:28:19 | 显示全部楼层
在linux下用gcc编译,结果也是22。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-15 13:44:26 | 显示全部楼层
汇编就会发现是编译器搞的鬼学学鱼C老师汇编课程吧
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-18 17:03:34 | 显示全部楼层
各种编译器编译方式不同 有些是从左往右  有些是从右往左
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-18 17:37:35 | 显示全部楼层
语言没有规定,处理器的处理方式不同
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-18 18:32:49 | 显示全部楼层
肯定会有不一样的时候!毕竟编译器不一样!
小甲鱼最新课程 -> https://ilovefishc.com
头像被屏蔽
发表于 2013-4-20 11:52:40 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-20 23:50:59 | 显示全部楼层
一开始我也不知道,后来发现编译器的问题,他的运算顺序不同,结果就不一样了
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-7 14:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表