关于c语言,请教
01#include<stdio.h>02voidmain()03{04inta,b,s;05a=5;b=5;06s=a+b;07printf("%d,%d,%d\n",...
01 #include <stdio.h>
02 void main()
03 {
04 int a,b,s;
05 a=5;b=5;
06 s=a+b;
07 printf("%d,%d,%d\n",a,b,s);
08 s=a+++a+++a++;
09 printf("%d,%d\n",a,s);
10 s=++a+b;
11 printf("%d,%d,%d\n",a,b,s);
12 s=--a+b;
13 printf("%d,%d,%d\n",a,b,s);
14 s=a--+b;
15 printf("%d,%d,%d\n",a,b,s);
16 s=-a+++-b;
17 printf("%d,%d,%d\n",a,b,s);
}
程序中第8行,书上说应该理解为a后缀自加进行3次,得到a的值为8,整个表达式的值为a自加前的值相加,也就是三个5相加,第7行输出的s为15,但我觉得第8行应该这样理解,s=(a++)+(a++)+(a++);第一个括号过后,a的值为6但第一个括号的值为5,第二个括号过后,a的值为7但第二个括号的值为6 ,第三个括号过后,a的值为8但是第三个括号的值为7,所以s的值为5+6+7,应该为18,怎么会是三个5相加呢,请教高手,谢谢了,我是新手,没有什么财富悬赏之类的,原谅了 展开
02 void main()
03 {
04 int a,b,s;
05 a=5;b=5;
06 s=a+b;
07 printf("%d,%d,%d\n",a,b,s);
08 s=a+++a+++a++;
09 printf("%d,%d\n",a,s);
10 s=++a+b;
11 printf("%d,%d,%d\n",a,b,s);
12 s=--a+b;
13 printf("%d,%d,%d\n",a,b,s);
14 s=a--+b;
15 printf("%d,%d,%d\n",a,b,s);
16 s=-a+++-b;
17 printf("%d,%d,%d\n",a,b,s);
}
程序中第8行,书上说应该理解为a后缀自加进行3次,得到a的值为8,整个表达式的值为a自加前的值相加,也就是三个5相加,第7行输出的s为15,但我觉得第8行应该这样理解,s=(a++)+(a++)+(a++);第一个括号过后,a的值为6但第一个括号的值为5,第二个括号过后,a的值为7但第二个括号的值为6 ,第三个括号过后,a的值为8但是第三个括号的值为7,所以s的值为5+6+7,应该为18,怎么会是三个5相加呢,请教高手,谢谢了,我是新手,没有什么财富悬赏之类的,原谅了 展开
6个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询