C语言,这个程序的解释,值为什么是0,0,-10.怎么算的
main(){inta=0,b=0,c=0;c=(a+=a-=5),(a=b,b+3);printf("%d,%d,%d"\n,a,b,c);}...
main()
{
int a=0,b=0,c=0;
c=(a+=a-=5),(a=b,b+3);
printf("%d,%d,%d"\n,a,b,c);
} 展开
{
int a=0,b=0,c=0;
c=(a+=a-=5),(a=b,b+3);
printf("%d,%d,%d"\n,a,b,c);
} 展开
3个回答
展开全部
首先你写的程序就有问题。
c=(a+=a-=5),(a=b,b+3);中间那个逗号应该是英文状态下的。c=(a+=a-=5),(a=b,b+3);
给你说说逗号的运算规则吧。逗号运算符是从左到右运算的。
所以,你的程序先运行c=(a+=a-=5),这个运算下来a=-10的,所以c=-10。之后就是运算(a=b,b+3);这里面再次从左到右运算,也就是先运算a=b,此时a=0,之后运算b+3,b的值一直没有变,所以b还是0.
所以最后的结果就是0,0,-10了。
满意请采纳!
c=(a+=a-=5),(a=b,b+3);中间那个逗号应该是英文状态下的。c=(a+=a-=5),(a=b,b+3);
给你说说逗号的运算规则吧。逗号运算符是从左到右运算的。
所以,你的程序先运行c=(a+=a-=5),这个运算下来a=-10的,所以c=-10。之后就是运算(a=b,b+3);这里面再次从左到右运算,也就是先运算a=b,此时a=0,之后运算b+3,b的值一直没有变,所以b还是0.
所以最后的结果就是0,0,-10了。
满意请采纳!
展开全部
a=b,b+3这个是a=b=0;b+3的值并没有赋给任何变量。。。
a-=5.....a=a-5.. ....-5
a+=-5;............ a=a+(-5)=-10;
所以c=-10;
a-=5.....a=a-5.. ....-5
a+=-5;............ a=a+(-5)=-10;
所以c=-10;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(a=b,b+3); 这个括号有问题吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询