今天遇到一个三元运算符,而没有写第二个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
网友评论