回 帖 发 新 帖 刷新版面

主题:c++菜鸟求救!!

#include "iostream.h"
main()
{ int i=10;
int & j=i;
cout<<"i="<<i<<endl;
cout<<"j="<<j<<endl;

i++;
j++;
cout<<"i="<<i<<endl;
cout<<"j="<<j<<endl;

}
为什么此题为12,12请那位大侠解释一下要详尽点哦,拜托!!!

回复列表 (共6个回复)

沙发

int & j=i;
改成int j=i;

板凳

同意上楼,改完后,你用i++给i加1,有用j++给i加1,所以为12

3 楼


int & j=i;
这里声明了引用,就是说i和j是一个变量只不过名字不一样
后面做了i++;j++;
相当于2次i++;

4 楼


深圳华信群英科技有限公司,目前主要从事软件外包开发、高级软件人才定向输送等业务,面对日益严峻的大学生就业难和IT企业招聘难,自2006以来,与知名通信软件公司正式签订定向输送人才的合作协议,针对想进入软件行业的人员提供企业实训,实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段,共计900学时。
企业订单委培,内训前签订就业安置协议,100%保证就业。实训结束之后,在华信群英科技及其战略合作伙伴从事通信软件研发工作。欢迎有意向者加QQ:649846168咨询。

5 楼

呵呵,,这个我知道。。。你这是引用哇。所以j是i 的别名啦。。所以你的i++时候i =11啦、j++的时候也相当于i++啊。所以i就变成12啦。。。最后i和j 都是12啦。。。

6 楼

我也来说说吧!呵呵!初次回答别人的问题!你首先是j引用i的地址,那j就与i共享一块内存空间,不管是j的值的改变还是i的值改变,只有其中一个的值改变另外一个也就跟着改变,所以第一次输出i与j的值的都是10,接着i++;这一步,i的值就变成了11,那么j也将跟着变成了11,再下来一步是j++;那么j这时加1后值就变成了12了,j改变i也改变,那么输出i与j的值都是12

我来回复

您尚未登录,请登录后再回复。点此登录或注册