微积分自增减

发布时间:2024-05-16 08:19 发布:上海旅游网

问题描述:

老谭的书,题目是个:执行以下程序段后,变量a,b,c的值分别是?

int x=10,y=9;
int a,b,c;
a=(--x==y++)? --x:++y;
b=x++;
c=y;
A a=9,b=9,c=9 B a=8,b=8,c=10 C a=9,b=10,c=9 D a=1,b=11,c=10

答案是B

x=10,y=9 然后是a=(--x==y++)?--x:++y.括号里面的自增自减是单目运算符应该是先执行的啊,然后再执行==号吧?那样的话x=9,y=10,不相等所以a=++y==11啊?同时“:”前面的--x要不要执行呢,执行的话x又等于10了,然后b=11,c=12....我的思路哪里错了知道的请一步一步详细一点帮我分析一下,主要是那几个自增自减那几个要执行那几个不执行和其他符号的先后问题。
直接点就是帮我把答案一步一步分析出来,详细一点- -!懂了再送分

问题解答:

--x=y++ x=x-1=9 y++,++在y后面,所以“=”先执行,所以x=y=9成立;此后y++,y=10;所以执行--x;x=8;
b=x++=8,x=9;
c=10

楼主第一步分析错了分析,所以导致后来的错误要记住
“==”,=,都是先于后++的,楼主一定要注意这点

热点新闻