c语言中,条件运算符是怎样的法则?
哪位大虾能否举个例子?
c语言中,条件运算符的法则:
由高到低是:!(非),&&(与),||(或)
&&左边为0则不看右边运算,||左边为1不看右边!
例:
main()
{
int a=1,b=2,c=3,d;
d=!b>a&&c||c>2
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
}
运行结果:a=1
b=0
c=3
d=1
程序执行说明:先执行!b>a即0>a,结果为0(b=0)
再执行0&&c结果为0,执行c>2结果为1
0||1结果为1
因为执行顺序为右结合,所以将整个表达式的结果给 d为1
}
条件运算符:
(表达式1)?(表达式2):(表达式3)
运算规划:如果表达式1为真,返回表达式2的结果,否则返回表达式3的结果
例如:
A=1,B=2
(A>B)?A:B
返回值为2
注意表达式是右结合的.
例:
A=1,B=2,C=3
(A>B)?A:B?C:B
相当于(A>B)?A:(B?C:B)
返回值为3
由高到低是:!(非),&&(与),||(或)
&&左边为0则不看右边运算,||左边为1不看右边!
例:
main()
{
int a=1,b=2,c=3,d;
d=!b>a&&c||c>2
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
}
运行结果:a=1
b=0
c=3
d=1
程序执行说明:先执行!b>a即0>a,结果为0(b=0)
再执行0&&c结果为0,执行c>2结果为1
0||1结果为1
因为执行顺序为右结合,所以将整个表达式的结果给 d为1
}
条件运算符:
(表达式1)?(表达式2):(表达式3)
运算规划:如果表达式1为真,返回表达式2的结果,否则返回表达式3的结果
例如:
A=1,B=2
(A>B)?A:B
返回值为2
注意表达式是右结合的.
例:
A=1,B=2,C=3
(A>B)?A:B?C:B
相当于(A>B)?A:(B?C:B)
返回值为3
温馨提示:答案为网友推荐,仅供参考
第1个回答 2007-08-30
我记得好像有一个是? :,例a>b?1:0.意思就是a>b吗?如果是那么这个表达示的结果是1,否刚就是0.a>b是一个条件,那么这个表达示只要是一个非0值就会取:之前的值,否则就取:之后
第2个回答 推荐于2018-03-08
c语言中,条件运算符的法则:
由高到低是:!(非),&&(与),||(或)
&&左边为0则不看右边运算,||左边为1不看右边!
例:
main()
{
int a=1,b=2,c=3,d;
d=!b>a&&c||c>2
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
}
运行结果:a=1
b=0
c=3
d=1
程序执行说明:先执行!b>a即0>a,结果为0(b=0)
再执行0&&c结果为0,执行c>2结果为1
0||1结果为1
因为执行顺序为右结合,所以将整个表达式的结果给 d为1
}
条件运算符:
(表达式1)?(表达式2):(表达式3)
运算规划:如果表达式1为真,返回表达式2的结果,否则返回表达式3的结果
例如:
A=1,B=2
(A>B)?A:B
返回值为2
注意表达式是右结合的.
例:
A=1,B=2,C=3
(A>B)?A:B?C:B
相当于(A>B)?A:(B?C:B)
返回值为3本回答被提问者和网友采纳
由高到低是:!(非),&&(与),||(或)
&&左边为0则不看右边运算,||左边为1不看右边!
例:
main()
{
int a=1,b=2,c=3,d;
d=!b>a&&c||c>2
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
}
运行结果:a=1
b=0
c=3
d=1
程序执行说明:先执行!b>a即0>a,结果为0(b=0)
再执行0&&c结果为0,执行c>2结果为1
0||1结果为1
因为执行顺序为右结合,所以将整个表达式的结果给 d为1
}
条件运算符:
(表达式1)?(表达式2):(表达式3)
运算规划:如果表达式1为真,返回表达式2的结果,否则返回表达式3的结果
例如:
A=1,B=2
(A>B)?A:B
返回值为2
注意表达式是右结合的.
例:
A=1,B=2,C=3
(A>B)?A:B?C:B
相当于(A>B)?A:(B?C:B)
返回值为3本回答被提问者和网友采纳
第3个回答 2007-08-30
not and or 高到低