...那句比较奇怪。。。按照我的理解。。。 a ?b :c ,?:是个三目运算符。?:; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式的值.如a=b>c?d:e;在这里 如果 b>c,a值为d。即是 if (b>c) a=d;
bvoid main (void){ int x=6; int y,z; short int shift=4; long a=100; int b; printf("1:x=%d\n",x); y=++x; printf("2:x=%d,y=%d\n",x,y); y=x--; printf("3:x=%d,y=%d\n",x,y); //printf("%d\n",a900? x:y;//在这里a的值为100,shift的值为4,x的值为6,a左移4位相当于100*2^4=1600,1600>900,所以b=6;而a在左移4位后值并没有赋给a,所以还是原来的100 printf("4:a=%d,b=%d\n",a,b); a+=b,b++; printf("5:a=%d,b=%d",a,b); z=a>b; printf("6:z=%d\n",z);} |