鱼C论坛

 找回密码
 立即注册
查看: 3188|回复: 12

搞不懂啊!

[复制链接]
发表于 2012-7-24 02:38:53 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
void main()
{
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
  q=((++j)+(++j))+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}

q为什么是22,而不是21。:'(
能说详细就说得多详细哈·小弟再次谢过了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-24 08:36:30 | 显示全部楼层
本帖最后由 shuai265 于 2012-7-24 09:04 编辑

应该是7+7+8吧         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-24 09:07:14 | 显示全部楼层
http://wenwen.soso.com/z/q267213098.htm应该和编译器的编译规则相关吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-24 09:08:38 | 显示全部楼层
小甲鱼的视频里面有。实际上这种不需要纠结的,这个都属于不规范的写作方式!!!容易让人产生误导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-24 09:12:01 | 显示全部楼层
和编译器关系吧!!!!!!{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-24 21:10:13 | 显示全部楼层
去看下这份资料 我保证你认真看完后 就会懂了
C语言自增自减学习资料
http://115.com/file/c263gvhu#
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-27 14:51:35 | 显示全部楼层
谢谢你们!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-27 17:20:29 | 显示全部楼层
百度
C语言 序列点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-27 17:22:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-27 18:19:13 | 显示全部楼层
其实这个很简单啊!! int i=5,j=5,p,q;
q=(    (++j)    +(++j)      )+    (++j    );
你看一下,根据程序运行时的优先级,内层的两个括号里面的++j 先运算,此时 j 变成了 7 ,然后  7 + 7 +(++j),   最后结果就是 7 + 7 + 8 =22
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-27 19:38:29 | 显示全部楼层
我是师兄 发表于 2012-7-27 17:22
资料错 自重

资料上解释的是错误的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-28 09:20:11 | 显示全部楼层
丿夏夜灬彬刂 发表于 2012-7-27 19:38
资料上解释的是错误的吗?

以偏概全
没有提到序列点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-7 15:01:10 | 显示全部楼层
好像很多人都在纠结这个问题,不过,我觉得,这个本身就不用在意,因为程序员在现实工作中就不会遇到这个问题,和这样的代码,之所以有,主要是为了深入了解吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-19 22:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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