wayne 发表于 2011-6-30 21:05:26

C语言里的双目运算符?:

不编译运行,大家能否说出下面的小程序的打印结果?

反正,我是做错了,:L#include<stdio.h>
int test(int b){
static int c=10;
printf("----------------------c=%d--------------\n",c);
return b<5?printf("%d--1--\n",++c),printf("%d--2--\n",++c),printf("%d--3--\n",++c):
printf("%d--4--\n",++c),printf("%d--5--\n",++c),printf("%d--6--\n",++c);
}

int main(){
printf("%d\n",test(13));
printf("%d\n",test(3));
return 0;
}

G-Spider 发表于 2011-6-30 21:40:47

该用括号的不要吝惜吧。正如i+++i++;

wayne 发表于 2011-6-30 21:50:42

2# G-Spider
:loveliness:
这个例子好像还没有歧义句吧

wayne 发表于 2011-6-30 21:57:49

2# G-Spider
额,我明白了,
的确,问题出在优先级上
多谢!

qianyb 发表于 2011-7-1 08:32:47

郁闷?:运算后面还必须要括号啊

wayne 发表于 2011-7-7 08:21:56

嗯,以前用的比较简单,我也是新近才留意到
页: [1]
查看完整版本: C语言里的双目运算符?: