#include "stdio.h" void main() { int a=5,b;b=(++a)+(++a); printf("%d",b); } 运行结果是14,为什么?

急急急
但是如果是b=(++a)+(++a)+(++a);这样b=22啊,这又为什么

第1个回答  2011-03-09
执行++运算时 编译是从右到左进行的。
b=(++a)+(++a);
即先执行最右面的++a,得到a的结果为6.
然后再计算第一个++a,此时的计算基础为6,得到结果为7.
这时前后结果就是两个7相加。
所以结果为14.
这里要注意的就是要把a看成是一个主体。不要用6和7相加,要知道任意一步对a的操作都会影响a的值。
理解了吗?
第2个回答  2011-03-09
++a表示先自增1,再参与运算(记住是所有的都自增后再运算),因为出现两次++a,所以此时a=7,b=7+7当然就是14了
第3个回答  2011-03-09
首先要先运行++a两次,再把值赋给b
b=(++a)+(++a)这个可以看成这样运行
++a;
++a;
b=a+a;本回答被网友采纳
第4个回答  2011-03-10
一个\t,\t不是8个空格组成的,他自己是一个,只是长度等于8个空格
第5个回答  2011-03-09
不是太清楚,你去问问这方面的专家吧

...void main() { int a=5,b;b=(++a)+(++a); printf("%d",b); } 运...
执行++运算时 编译是从右到左进行的。b=(++a)+(++a);即先执行最右面的++a,得到a的结果为6.然后再计算第一个++a,此时的计算基础为6,得到结果为7.这时前后结果就是两个7相加。所以结果为14.这里要注意的就是要把a看成是一个主体。不要用6和7相加,要知道任意一步对a的操作都会影响a的...

...{ int a=1,b; b=(++a)+(++a); printf("%d",b); } 结果为什么是6,而...
若单纯按照“自左至右”的运算规则,在i=3 的情况下_『:(++i)+(++i)+(++i),相当 于 =4+5+6=15; :(i++)+(i++)+(i+ +),相当于 =3+4+5=12;『=(++i)+(i+ +)+(++i),相当于J=4+4+6=14。但程序 实际执行后3个表达式的结果分别是18,9和 15。在表达式 =(+ ...

...main(void) { int a = 5,b; b=(++a)+(++a)(++a); printf("%d\\n",b...
main(void)错了,应为int main(void)或者void main(void)括号里的void可有可无;b=(++a)+(++a)(++a); 这条语句也错了,(++a)(++a)中间应该有个乘号,乘号是不能省略的

int a=5,b b=(++a)+(++a),为什么b是14
int a=5,b;b=(++a)+(++a);由于++在变量的前面,所以应该先让a变量自增,再用自增后的值 由于有两个++a 所以 b=(++a)+(++a);这句相当于三句:++a;++a;b=a+a;上面两句运行完之后,a的值肯定是7,因为自增了两次 所以最后 b=a+a=7+7==14 ...

int a=5,b; b=++a*++a ;printf(“%d”,b);
49 先逐步自增再统一取值

int a=5,b;b=(++a)+(++a)+(a++);printf("%d,%d",b,a)
b=6+7+7 a=8 所以结果是输出:20,8

int a=5,b=(++a)+(++a)+(++a)怎么计算?
include <iostream>using namespace std;int main(){int a = 5;int b = (++a) + (++a) + (++a);int a1 = 5;int b1 = (++a1) + (++a1);cout <<"a:"<< a << endl <<"(++a) + (++a) + (++a):" <<b << endl;cout << "a1:" << a1 << endl <<"(++a1)...

int a=5,b;b=(++a)+(a++),怎么计算?
b=(++a)+(a++);一个++在变量前,一个是在变量后 所以 相当于三句:++a;b=a+a;a++;所以最后 b=a+a==6+6==12;\/\/因为a自增了一次后就用a的值,所以此时a的值是6 a==7;\/\/再自增一次,就从6变成7

...{ int a=1,b; b=(++a)+(++a); printf("%d",b); } 结果为什么是6,而...
这种问题有二义性,在不同的编译系统中,结果不同。不会作为考试题使用的,除非你们老师不懂。

C语言里,int a=5,b;b=++a*--a;求a。
正确答案为 25,++ 和--的运算级比*的 要高,所以先运算++a和--a 然后再 相乘;++ --是二级运算符,*是三级运算符 ,所以 先++a 为6,a现在为6;接着--a,a现在为5;接着相乘 就是5*5 所以答案为 25. 不相信 可以是程序 include<stdio.h> main(){ int a=5,b;b=++...

相似回答
大家正在搜