#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 是怎么出来的啊?
#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 是怎么出来的啊?
代码有误,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
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;