b=a++,b++,++b这个怎么看
刚接触C语言没看懂这题inta=2,b=5;b=a++,b++,++b;printf("%d",a+b);求输出结果...
刚接触C语言没看懂这题
int a=2,b=5;
b=a++,b++,++b;
printf("%d",a+b);
求输出结果 展开
int a=2,b=5;
b=a++,b++,++b;
printf("%d",a+b);
求输出结果 展开
展开全部
结果是7,这是我在编译器上验证的结果,你也可以试一下。
是这样运算的:
‘,’是逗号运算符,运算结果取最后一个表达式的值,也就是取最后++b得出的值。但是逗号运算符需要从左向右依次一个表达式一个表达式的执行,具体执行步骤如下:
1、执行b=a++,先把a的赋值给b,得到b=2,a再自加1,得到a=3.
2、执行b++,b被自加1,所以b的结果是2+1=3
3、执行++b,b被自加1,所以b的结果是3+1 = 4.
4、执行printf,结果是a+b = 3 + 4 = 7.
是这样运算的:
‘,’是逗号运算符,运算结果取最后一个表达式的值,也就是取最后++b得出的值。但是逗号运算符需要从左向右依次一个表达式一个表达式的执行,具体执行步骤如下:
1、执行b=a++,先把a的赋值给b,得到b=2,a再自加1,得到a=3.
2、执行b++,b被自加1,所以b的结果是2+1=3
3、执行++b,b被自加1,所以b的结果是3+1 = 4.
4、执行printf,结果是a+b = 3 + 4 = 7.
展开全部
首先你要明白a++和++a的区别:a++为执行这句之后a的值加一,++a为a的值加一再执行这句话。
其次,逗号表达式是先执行逗号之前,再执行逗号之后,赋值运算符优先级高于逗号表达式
因此:
int a=2,b=5;
b=a++,b++,++b;
//上面这句的执行过程是,b=a++:先执行a赋值给b,b=2,然后a加一等于3;b++:执行后b=3,++b:执行后b=4
printf("%d",a+b);输出a+b=3+4=7
其次,逗号表达式是先执行逗号之前,再执行逗号之后,赋值运算符优先级高于逗号表达式
因此:
int a=2,b=5;
b=a++,b++,++b;
//上面这句的执行过程是,b=a++:先执行a赋值给b,b=2,然后a加一等于3;b++:执行后b=3,++b:执行后b=4
printf("%d",a+b);输出a+b=3+4=7
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-04-12
展开全部
int a=2,b=5;
b=a++,b++,++b;
#b=a++, b=a=2, a=a+1=3
#b++, b=b+1=3
#++b, b=b+1=4
printf("%d",a+b);
#不论++a或a++,对于a来说都是a=a+1
#对于b = a++, 先把a值赋给b,再计算a=a+1
#对于b = ++a, 先计算a=a+1,再把a值赋给b
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
逗号表达式:
顺序计算b=a++;[b=2,a=2+1=3] b++;[b=2+1=3] ++b;[b=3+1=4]
[a+b=3+4=7]
顺序计算b=a++;[b=2,a=2+1=3] b++;[b=2+1=3] ++b;[b=3+1=4]
[a+b=3+4=7]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b=a++,(b=2,a=3),b++,(b=3),++b,(b=4)
a+b=7.
a+b=7.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询