運算符優先級問題

設計一個函數計算2n+1:

int func(int n)
{
	return n << 1 + 1;
}

這個函數得到的結果是4*n。

使用左移一位代替乘以2的運算,是很好的方法,但在C/C++中“+”運算符優先級高於“<<”,因此會先進行加法運算再左移兩位,得到結果4*n。

正確寫法是:

int func(int n)
{
	return (n << 1) + 1;
}


發佈了116 篇原創文章 · 獲贊 49 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章