请问C语言这句怎么理解?

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:04:02
这句C语言语句该怎么理解?
Switch :: nvoValue.value = input_value ? (short) 0: 200;
前面的双冒号 :: 怎么理解,后面的? (short) 0: 200又是什么意思,知道的大大解答下了,多谢!

这是个判断表达式:当input_value的返回值为真时就执行“:”前边的语句,当input_value的返回值为假时就执行“:”后边的语句。前边的(short) 的意思是把“0”或者“200”强行转换成short类型。那个“?”是判断语句的格式。
比如:
int a = 1 ;
int x = 0 ;
a>2?(x = 1):(x = 2) ;
因为a等于1,所以a不大于2,这样就执行“:”后边的语句了,于是x就等于2了。

三目运算符,相当于
if(nvoValue.value=inpu_value)
nvoValue=(short)0;
else nvoValue=200;

(short)强制类型转换,默认0为int型,强制转换为short类型

Switch是命名空间,如果::前面没东西就是默认命名空间。
A=B?C:D是标准的3元条件求值,(short)是强制类型转换为short类型

顶1楼的,其实这个在C++里面比较常见