if..else 句の代わりに三項演算子が実装されていることがわかります。 ?:で表されます。 「?」 ' 記号は if 部分に相当し、':' は else 部分に相当します。次の 3 つのプログラムは、三項演算子の場合の興味深い観察結果を説明しています。
次のプログラムはエラーなしでコンパイルされます。三項式の戻り値の型は float (exp2 など) であることが想定されており、exp3 (つまり、リテラルの 0 - int 型) は暗黙的に float に変換可能です。
1 2 3 4 5 6 7 8 |
|
コンパイラが三項式の戻り値の型を見つけられないか、exp2 (char 配列) と exp3 (int) の間に暗黙的な変換がないため、次のプログラムはコンパイルされません。
1 2 3 4 5 6 7 |
|
次のプログラムはコンパイルできるかもしれませんが、実行すると失敗します。三項式の戻り値の型は (char *) 型に制限されていますが、式は int を返すため、プログラムは失敗します。文字通り、プログラムは実行時または実行時にアドレス 0 に文字列を出力しようとします。
1 2 3 4 5 6 7 |
|
以上がC/C++ 三項演算子に関する興味深い観察の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。