永发信息网

自增问题求解

答案:2  悬赏:10  手机版
解决时间 2021-05-14 09:00
  • 提问者网友:藍了天白赴美
  • 2021-05-13 16:28

#include<iostream>
using namespace std;

int main (int argc,char *argv[])
{
int a=4;
(++a)+=a;
cout<<a<<endl;
int b=4;
(++b)+=b++;
cout<<b<<endl;
int c;
++c=10;
cout<<c<<endl;
return 0;

}

a,b,c 是怎么出来的啊?

最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-05-13 17:10

代码有误,c无初始值


1.看a


a=4


(++a)+=a;


先执行++a


a=5


再执行


a+=a; 即a=a+a=5+5=10


输出10


2.看b


b=4


(++b)+=b++;


先执行++b b=5


b+=b; b=b+b=5+5=10


再执行b++ b=b+1=10+1=11


输出11


3.c无初始值,++c出错


不过无论c取何值


++c=10 先把c值加一,然后把10赋给c


c=10


输出10

全部回答
  • 1楼网友:煞尾
  • 2021-05-13 18:31

a=4;

(++a)+=a;其中++a后a=5;a+=a;合起来看成a=(++a)+a比较好理解,等于5+5=10;

b=4;

同理看成b=(++b)+b++;b就等于5+6=11;

++c=10;++c返回的是C,c=10;

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯