1 定義
三目運算符由條件和表達式組成:
條件?表達式1:表達式2
等同於:
if 條件:
表達式1:
else:
表達式2
注意:
- 條件運算符的優先級低於關係運算符和算術運算符,但是高於賦值符,(ex:max=(a>b)?a:b可以去掉括號而寫爲 max=a>b?a:b);
- ?和:成對使用;
- 條件運算符結合方向從右至左。(ex:a>b?a:c>d?c:d應理解爲a>b?a:(c>d?c:d))
2 應用
通常用於宏定義,在做圖像矩陣運算時求最大值,最小值,以及數據截斷。
/*求兩者最大值*/
#define MAX(a, b) ((a) > (b) ? (a) : (b))
/*求兩者最小值*/
#define MIN(a, b) ((a) < (b) ? (a) : (b))
/* 數值範圍保護 */
#define CLIP(a, l, h) (MIN_V(MAX_V(a, l), h))
3 優點
- 代碼簡介;
- 運算效率高。