作业帮 > 数学 > 作业

执行以下程序段后,变量x,y,z的值分别为().int a=1,b=0,x,y,z; x=(--a==b++)?--a:

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/23 02:05:42
执行以下程序段后,变量x,y,z的值分别为().int a=1,b=0,x,y,z; x=(--a==b++)?--a:++b; y=a++; z=b;
执行以下程序段后,变量x,y,z的值分别为().
int a=1,b=0,x,y,z;
x=(--a==b++)?--a:++b;
y=a++;
z=b;
帮我具体分析一下,特别是X的那句,在判断条件成立后,後面的--a是在括号里的基础上再减还是在原来定义的a=1的基础上减..
#include
//
int main()
{
int a=1;
int b=0;
int x, y, z;
int t =4;

x=(--a==b++)?--a:++b; //很显然,--a与b++是相等的,此时a =0.因此,前式化为:x=1?--a:++b,然后X为真故执行--a,a=-1.
y=a++;//a = -1,所以Y=-1,A++后,A=0;
z=b;//B已经++了,所以是1;
printf("%d,%d,%d\n",x,y,z);

return 0;
}