什么海鱼好吃:我想请教关于C语言方面的问题,不胜感激

来源:百度文库 编辑:高校问答 时间:2024/05/10 06:24:20
1) 以下程序输出的是:
#include<stdio.h>
main()
{int i,j k,a=3,b=2;
i=(--a==b++)? --a: ++b;
j=a++;k=b;
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
KEY:i=1,j=1,k=3 点得来的啊
是b++赋值给--a还是赋值给a啊?
i=(--a==b++)? --a: ++b;
j=a++;k=b;什么意思啊怎么会得到那种解释得呢?谢谢,就是这个解释k=b+1(b++)
j=--a-1=1.怎么来得啊

--a==b++是个判断式而不是赋值式;
1.--a等于3-1=2(a等于2),
b++等于2(b等于2+1=3),
--a==b++成立,i等于1,所以执行冒号前语句;
2.-aa等于2-1=1;执行完毕,跳出三目运算;
3.赋值;
 j=a++,j等于1,a等于2;
k=b,k等于3
4.所以i,j,k分别为1,1,3;

应当注意,=为赋值号;
     ==为等于号,通常用来作为判断式;
    另外,++,--号在常量的前后作用是不同的;如:a=0;
b=a++;
cout<<a<<'\t'<<b;
  会输出1 0
而   a=0;
b=++a;
cout<<a<<'\t'<<b;
     会输出 1 1

系甘
第一步,--a噶值系2,--a不等于++b(3-1不等于2+1,所以i取值a-1-1=1.
++b,k=b+1(b++)
j=--a-1=1.
所以答案系~~~~