C++三目運算符增強
C++中的三目運算符表達式返回的可以是一個變量,但是C語言中返回的是一個常量。
C語言中:
void test05() {
?? ?int a = 10;
?? ?int b = 20;
?? ?printf("%d\n", a < b ? a : b);
//在C語言中三目運算符返回的是表達式的值,是一個常量
?? ?/*(a < b ? a : b) = 100;*/
?? ?//可以這么寫
?? ?*(a < b ? &a : &b) = 100;
?? ?//這樣的話返回的就是a的空間,就可以賦值
}
int main()
{
?? ?test05();
?? ?return 0;
}
C++中:
void test05() {
?? ?int a = 10;
?? ?int b = 20;
?? ?printf("%d\n", a < b ? a : b);
?? ?//在C++中三目運算符返回的是一個變量
?? ?(a < b ? a : b) = 100;
}
int main()
{
?? ?test05();
?? ?return 0;
}