閱讀845 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go android 簡單列表對話框(AlertDialog.Builder().setItems())
  下一篇:go Java中long類型容易出現的bug