关于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相加呢,请教高手,谢谢了,我是新手,没有什么财富悬赏之类的,原谅了
展开
 我来答
渡轮555
2011-04-09 · TA获得超过534个赞
知道小有建树答主
回答量:863
采纳率:100%
帮助的人:649万
展开全部
a++只是在表达式计算完后才改变a的值,s= 5+5+5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式