一、条件运算符
表达式1 ? 表达式2 : 表达式3
求解过程:先判断表达式1的真假,若表达式1的值为真,返回表达式2的值;若为假,返回表达式3的值。
注意:非零的数都是真的,只有 ’ 0 ‘ 是假的!
例:
//题:以下程序的输出是:
#include<stdio.h>
int main( )
{
int i, j, k, a=3, b=2;
i=(--a == b++) ? --a : ++b;
j=a++;
k=b;
printf("i=%d,j=%d,k=%d\n", i, j, k);
return 0;
}
//i=1,j=1,k=3
//注意a++ ++a的区别,判断条件运算符是关键
二、逻辑运算符
- 逻辑非!:对值取反操作,turefalse , falseture
- 逻辑与&& :例: c=a&&b(可类似数学集合上的 ‘且’)
- a,b中只要有一个值是false,就直接返回false;只有当两个值都为ture时,才会返回ture, 如a为false,则c=a;
- 如第一个值a为ture,则必然返回第二个值b; 如两个值都为ture,则返回后边的ture;
- 如两个值中有一个是false,则返回false; 如两个值都是false,则返回前边的false
- 逻辑或 || : 例:c=a || b(可类似数学集合上的 ‘并’)
- 如第一个值为ture,则直接返回第一个值;
- 如第一个值为false,则直接返回第二个值;