关于C语言自增自减的问题

#include<stdio.h>intmain(void){inta=6;intb,c;intd,e;b=a++;/*为什么a++是8不是7??*/c=++a;d=a-... #include< stdio.h >
int main(void)
{
int a = 6;
int b , c;
int d , e;

b = a++;/*为什么a++是8不是7??*/

c = ++a;
d = a--;/*为什么a--是8不是5??*/
e = --a;

printf ( " 前缀自加:%d\n",c);
printf ( "后缀自加:%d\n",b);
printf (" 前缀自减%d\n",e);
printf ( "后缀自减%d\n",d);

return 0;

}

输出前缀自加是8,后缀自减也是8,为什么啊??
展开
 我来答
百度网友a5eb3e1
2014-08-13 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2631万
展开全部
#include< stdio.h >
int main(void)
{
int a = 6; 
int b , c;
int d , e;

b = a++;/* b是6,a是7 */

c = ++a;/* c是8,a是8 */
d = a--;/* d是8,a是7 */
e = --a;/* e是6,a是6 */

printf ( "前缀自加:%d\n",c);
printf ( "缀自加:%d\n",b);
        printf (" 前缀自减%d\n",e);
printf ( "缀自减%d\n",d);

return 0;

}
XoriieInpottn
2014-08-13 · TA获得超过494个赞
知道小有建树答主
回答量:153
采纳率:100%
帮助的人:152万
展开全部

b = a++ 执行后 b = 6, a = 7

c = ++a 执行后 c = 8, a = 8

d = a-- 执行后 d = 8, a = 7

e = --a 执行后 e = 6, a = 6


正确输出为:8 6 6 8

有图有真相:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杞谨zX
2014-08-13 · TA获得超过109个赞
知道答主
回答量:106
采纳率:0%
帮助的人:138万
展开全部
有一个简单的记忆方法,++在前,就是先自增,i在后,就是自增以后再给值;相反,i在前,就是先给出i的值,++在后,就是把值给出来以后再自增。
m=++i; i先自增,自增以后为9,然后把9给m
n=j++; 先把j的值10给n,然后再自增,j变成了11
所以得结果。
如果满意请采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高楼寻缝
推荐于2016-01-05 · TA获得超过175个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:159万
展开全部
#include< stdio.h >
int main(void)
{
int a = 6;
int b , c;
int d , e;

b = a++; //先赋值,后加,结果:b=6,a=7

c = ++a; //先加,后赋值,结果:a=8,c=8
d = a--;// 先赋值,后减,结果:d=8,a=7
e = --a;//先减,后赋值,结果:a=6,e=6

printf ( " 前缀自加:%d\n",c); //8
printf ( "后缀自加:%d\n",b); //6
printf (" 前缀自减%d\n",e); //6
printf ( "后缀自减%d\n",d); //8

return 0;

}
追问
懂了,谢谢,刚学c
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式