标题:[求助]++的使用问题
只看楼主
27149
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2005-5-16
 问题点数:0 回复次数:4 
[求助]++的使用问题
#include <iostream.h>
void main()
{
 typedef int interger;
 interger i,j,k1,k2,k3;
 i=3;j=4;k1=i+++j;
 cout<<"k1="<<k1<<".i="<<i<<endl;
 i=3;j=4;
 k2=(i++)+j;
 cout<<"k2="<<k2<<".i="<<i<<endl;
 i=3;j=4;
 k3=i+(++j);
 cout<<"k3="<<k3<<".j="<<j<<endl;
 i=3;
 cout<<"i="<<i<<".i++="<<i++<<endl;
 cout<<"最后结果i="<<i<<endl;
}
输出结果为:
k1=7.i=4
k2=7.i=4
k3=8.j=5
i=4.i++=3
最后结果i=4

为什么倒数第二行i的值会是4啊?明明i=3;已经对i重新赋值了阿!

#include <iostream.h>
void main()
{
 int a=3,b=5,c;
 c=a*b+ ++b;
 cout<<c<<endl;
 cout<<b<<endl;
}
为什么这段程序的输出结果为:
21
6


 c=a*b+ ++b;中c=a*b+后面加了一个空格也合法吗?
哪位大侠解释一下阿!
搜索更多相关主题的帖子: include 倒数 
2005-06-12 18:43
shan183
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2005-5-30
得分:0 
在cout<<"i="<<i<<".i++="<<i++<<endl中,出现了两个运算符,一个是"<<"流插入运算符,一个是"++"自增运算符,"++"的优先级高于"<<",所以要先计算"i++",因此就有了以上的结果!
至于c=a*b+ ++b,比较复杂,另外,c=a*b+++b、c=a*b++ +b与c=a*b+ ++b的计算结果是不一样的!
2005-06-12 21:32
shan183
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2005-5-30
得分:0 
其实,这种问题在实际的编程中时很少遇到的,即使遇到,我们一定要善于利用括号,使表达式有明确的含义,执意去分析上面的错误是没有多大意义的!
2005-06-12 21:34
BBCH2
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-10-26
得分:0 
不是从新赋值了,在运算中 i++在运算后自加一,所以i=4啊
2005-10-26 19:38
zinking
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:35
帖 子:916
专家分:0
注 册:2004-12-5
得分:0 
恩恩,不要死扣语法
不同的编译器会做出不同的解释

http://kongfuziandlife. http://codeanddesign.
2005-10-26 21:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-20721-1-1.html




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

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