通用原型: EXP1 EXP2:EXP3Ternery運營商
三元經營者有EXP2的返回類型。 exp3需要與exp2具有相同的返回類型,或者至少有一個隱式轉換。否則它會拋出錯誤
在下面的程序中,由於exp3是int而exp2是char *,所以我在CodeBlocks中出現錯誤。 Bjut當我用0替換1時,它正在打印0 ..
0也是一個int值。我無法理解。
#include <iostream>
using namespace std;
int main()
{
int test = 0;
cout << test ? "A String" : 1;
return 0;
}
0被隱式轉換爲空指針,或者正如標準所說的那樣,'0'是空指針常量。 – user657267 2014-11-06 06:10:52
請注意,它正在打印的「0」不是表達式右側的「0」,而是「test」的值。三元表達式的值被丟棄。 – 2014-11-06 06:14:32
謝謝...是的,你是正確的..0是一個空指針常量.. – 2014-11-06 06:16:30