1. 程式人生 > >c語言三元運算子a:b?c你知道多少

c語言三元運算子a:b?c你知道多少

今天遇到一個三元運算子,而沒有寫第二個c的值,著實讓自己困惑了一把
比如:a>b?:c,知道如果a>b成立了,返回的是什麼呢?
經測試發現:此時返回的是a>b的結果,一般來說,如果是表示式1(a>b)是比較運算,則返回的就是表示式1(a>b)的結果,一般是 1 
如果表示式1 直接就是一個數字,則返回的就是此數字的內容,
測試如下:
int a = 10;
int i = 5;
a = i > 0 ? : 2;
NSLog(@"a = %d", a); //a = 1


int i = 5;
a = i ? : 2;
NSLog(@"a = %d", a); //a = 5


int i = -5;
a = i ? : 2;
NSLog(@"a = %d", a); //a = -5


int i = 0;
a = i ? : 2;
NSLog(@"a = %d", a); //a = 2