| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 495 人关注过本帖
标题:[求助]解释i++和++i
只看楼主 加入收藏
Dee
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-9-4
收藏
 问题点数:0 回复次数:8 
[求助]解释i++和++i

帮我解释一下
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);
}

这里面的p=(i++)+(i++)+(i++); q=(++j)+(++j)+(++j);
P和q的值怎么算!
谢谢~!

搜索更多相关主题的帖子: 解释 
2006-10-01 21:07
zzc0816
Rank: 1
等 级:新手上路
帖 子:61
专家分:7
注 册:2006-9-14
收藏
得分:0 
15 24 8 8

2006-10-01 21:15
mnlmng
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-1
收藏
得分:0 

i++是指先按i值算,再i自加1
如:i=5;
m=(i++)+1;那么这是里的m是6,因为在这个表达式实际可写成如下两个语句:
m=i+1;
i=i+1;

而++i则是先自加再进行其它运算
如:i=5;
m=(++i)+1;这里面的m就是7了,这个表达式等同于:
i=i+1;
m=1+i;//注意,语句的顺序是不一样的

在你给出的例子中,同理,先按i计算p,故答案为15顺序是:
p=i+i+i;
i=i+1;
i=i+1;
i=i+1;故i为8
而q则是按j+1算,故其是24顺序如下:
j=j+1;
j=j+1;
j=j+1;故j为8
q=j+j+j;故q为24


2006-10-01 22:26
剑人
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-9-21
收藏
得分:0 
其实这样的代码专研是毫无疑义的!!!
2006-10-01 22:58
多维数组
Rank: 1
等 级:新手上路
帖 子:238
专家分:0
注 册:2006-8-16
收藏
得分:0 
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);
}

这个程序要看编译器......
仔细看看谭老大的书吧......

有事发邮件:tzp_1210@
2006-10-02 07:41
Kivy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-9-3
收藏
得分:0 
基本思想差不多
主要看编译器是左还是右
搞清楚这个这个问题就可以Fix了
2006-10-02 11:57
Dee
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-9-4
收藏
得分:0 
谢谢大家`!

我是⑤个珥姛ゞ的菜鸟,但我相信总有一天我会成为⑤个珥姛ゞ的老鸟~! C爱好者加我QQ:179233339
2006-10-04 14:09
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1987
专家分:4
注 册:2006-7-1
收藏
得分:0 

还是一句,主要看你的编译器!


[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-10-04 14:23
上杉冰枫
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2006-6-24
收藏
得分:0 
TC编译器跟VC++编译器~
2个都用下~
请问下效果是什么~有什么区别吗?

因为→№頦§縎£銘→訫‰ 所以→№從此々吥£唁→愛‰
2006-10-04 16:10
快速回复:[求助]解释i++和++i
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016853 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved