C语言中:?是选择关系是吗?在做题时是取前还是取后?

来源:百度知道 编辑:UC知道 时间:2024/06/22 00:23:16
如:main()
{ int p=30;
printf("%d\n",(p/3>0 ? p/10 : p%3));
}

表达式的意思为:P/3>0是否成立,若成立打印P/10的值,不成立打印P%3的值。
应该是取前吧。
=======================================================
PS:

[条件运算符]
1.一般格式: 表达式1?表达式2:表达式3
条件表达式中的“表达式1”、“表达式2”、“表达式3”的类型,可以各不相同。
2.运算规则
如果“表达式1”的值为非0(即逻辑真), 则运算结果等于“表达式2”的值;否则,运算结果等于“表达式3”的值。
3.运算符的优先级与结合性
条件运算符的优先级,高于赋值运算符,但低于关系运算符和算术运算符。其结合性为“从右到左

[例] 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。
main()
{ char ch;
printf("Input a character: ");
scanf("%c",&ch);
ch=(ch>='A' && ch<='Z') ? (ch+32) : ch;
printf("ch=%c\n",ch);
}