?:的意思是条件运算符,使用的格式如下(条件)?A:B,如果条件成立,表达式的值就是A,否则是B。
!的意思是用来取非运算的,!true的结果就是 false !false 的结果是 true。
写程序中,?:用的比较少,!主要用在条件判断中。
比如
int a=9,b=8;
a>b?a=8:b=9;//就是这句
相当于if语句,问号前面的表达式为真的时候执行a=8,否则b=9。
扩展资料:
结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。
如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。
如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。