问号冒号表达式 typedef struct

if (a > b)

c = 1;

else

c = 0;

看,没有花括号的代码,感觉多紧凑。不过,对于上面的代码,我们还可以继续简化,那就是使用? : 语句。

c = (a > b)? 1 : 0;

就一行话,多简捷!语句中的问号问的是什么?问的是 a 是否大于 b ?如果是,则得到值1,否则,得到值0。

? : 表达式格式语法:

(条件) ? 值1 : 值2

举一例子:

问号冒号表达式 typedef struct

设有int变量 a,b,二者均已初始化。请得到二者中的较大值。

方法是:

int c = (a > b) ? a :b;

是的,就这么简单,执行上面代码,c 将得到a和b中的较大值。

我们称 (a > b) ? a : b为一个表达式,而不称它为完整的一个语句(尽管它的确也可以作一个单独的语句存在)。一般地,?:表达式拿来作为等号的右值,用于通过条件判断确定一个值后,该值被赋予等号的左值。因此,并不是所有的if..else...语句都可以用: ?来代替,只有那些两个分支都只是用来计算一个同一类型的值,然后赋予同一变量的条件分支语句,才适合。

  

爱华网本文地址 » http://www.413yy.cn/a/25101017/365779.html

更多阅读

C++11中的lambda表达式 c lambda表达式 linq

C++11添加了一项名为lambda表达式的新功能,通过这项功能可以编写内嵌的匿名函数,而不必编写独立函数和函数对象,使得代码更容易理解。lambda表达式的语法如下所示:[capture_block](parameters) exceptions_specification-> return_type

从不会到精通js正则表达式转 精通正则表达式 豆瓣

正则表达式可以:•测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证•替换文本。可以在文档中使用一个正则表达式来标识特定文

声明:《问号冒号表达式 typedef struct》为网友好小伙潇潇洒洒分享!如侵犯到您的合法权益请联系我们删除