c++中短路求值的妙用
c++中有這樣一個特性,即對於與、或運算,如果能夠通過第一個表達式計算出整個表達式的真值,那麼就不會再去計算第二個表達式。
比如或運算
a || b,如果a的值是true,那麼整個表達式也肯定是true,程序不會去計算第二個表達式。
與運算
a&&b,如果a的值是false,那麼整個表達式也肯定是false,程序不會去計算第二個表達式。
於是就出現了一下妙用:
比如,對一個指針接引用,那麼必須保證這個指針非空:
傳統的做法是
if(ptr)
ptr->value;
比較簡潔的做法:
ptr && ptr->value;
經典的例子:
求n!,要求不能使用任何判斷語句,不能使用任何循環語句
給你3秒鍾哦親。
公布答案:
int func(int n)
{
int t=0;
n && t=func(n-1);
return t*n;
}
最後更新:2017-04-02 06:51:46