1.
#include<stdio.h>
void main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
輸出什么?
答:
0
(a>b>c)
=>(a>b)>c
=>(5>4)>3
=>1>3
=>0
2.
#include <stdio.h>
main( )
{
int a = –1, b = 4, k;
k=(+ + a <0) && !(b––< 0) ;
printf(“%d,%d,%d\n”,k,a,b) ;
}
答:
輸出:0,0,4
k=(++a<0)&&!(b--<0);
表達式中,首先計算(++a<0)&&!(b--<0);在邏輯與運算中,如果前面表達式為true,才去進行&&后面的運算,現(xiàn)在(++a<0)為false,所以不進行后面的(b--<0).
運算結(jié)果只對a進行了一次自加就把值賦給了k,k = false = 0;
所以輸出0,0,4。
|