關於c 運算子優先順序的問題,C 中運算子優先順序的問題

時間 2021-09-07 11:56:34

1樓:匿名使用者

運算子優先順序

在實際的開發中,可能在一個運算子**現多個運算子,那麼計算時,就按照優先順序級別的高低進行計算,級別高的運算子先運算,級別低的運算子後計算,具體運算子的優先順序見下表:

運算子優先順序表

優先順序 運算子 結合性

1 () . 從左到右

2 ! +(正) -(負) ~ ++ -- 從右向左

3 * / % 從左向右

4 +(加) -(減) 從左向右

5 << >> >>> 從左向右

6 < <= > >= instanceof 從左向右

7 == != 從左向右

8 &(按位與) 從左向右

9 ^ 從左向右

10 | 從左向右

11 && 從左向右

12 || 從左向右

13 ?: 從右向左

14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 從右向左

說明:1、 該表中優先順序按照從高到低的順序書寫,也就是優先順序為1的優先順序最高,優先順序14的優先順序最低。

2、 結合性是指運算子結合的順序,通常都是從左到右。從右向左的運算子最典型的就是負號,例如3+-4,則意義為3加-4,符號首先和運算子右側的內容結合。

3、 instanceof作用是判斷物件是否為某個類或介面型別,後續有詳細介紹。

4、 注意區分正負號和加減號,以及按位與和邏輯與的區別

其實在實際的開發中,不需要去記憶運算子的優先順序別,也不要刻意的使用運算子的優先順序別,對於不清楚優先順序的地方使用小括號去進行替代,示例**:

int m = 12;

int n = m << 1 + 2;

int n = m << (1 + 2); //這樣更直觀

這樣書寫**,更方便編寫**,也便於**的閱讀和維護。

2樓:匿名使用者

vc6中位239,

a*(a--)+(--a)

=15*15+14

=239

3樓:匿名使用者

我剛才用

0,visual studio 2005都是編譯不過去的,看來這個題目是老師自己編的...無視之

4樓:vc晨vc晨vc晨

你這樣寫就是在玩火,沒事找事,你自己看不懂,別人更看不懂的

c++中運算子優先順序的問題

5樓:金色潛鳥

假定陣列是 int y=;

指標是 int *symbol=y; int x=222;

語句 *(symbol++)=x; 因為是字尾++, 表示式裡不自增,故計算分2步走,(版1_1) *(symbol)=x;

(1_2) symbol=symbol+1; symbol指向 &y[1]。

語句 *symbol++=x; ++優先順序高於 *, 所以類似

權上面,字尾++, 表示式裡不自增,故計算分2步走,(2_1) *symbol=x

(2_2) symbol=symbol+1; symbol指向 &y[1]。

這樣,兩者效果一樣。

6樓:gta小雞

是一樣的。 *(symbol++)等價於 *symbol++。

關於c++運算子優先順序++和*的?

7樓:閻輝門曼雲

++a和a++含義不同啊,a++表明先執行後加減,所以還是從0開始的。

c++中的運算子優先順序順序是什麼?

8樓:匿名使用者

而動態資**肯定不能一個方

源法搞定,就像你的**bai有register.aspx、login.aspx等等,都需要你du自己來寫zhi,在我的httpserver裡,每個處理請求的

daojs模組都匯出processrequest(request,response)即可,比如實現一個register.js(只輸出字串register)

PHP運算子優先順序,php中的運算子優先順序是什麼樣的

php運算子優先順序 由低到高 結合方向 運算子 左 左 or 左 xor 左 and 右 print 右 左 左 左 左 左 左 無 無 左 左 左 右 int float string array object 右 無 new 由此表可以看到,的優先順序最高,其次是 最後才是?而?是左結合的,所...

C 裡過載了的運算子是否還保持原來的優先順序別

c 還保持原來的優先順序別 袁方旭 規劃局規劃符合符合法規 堂糖卻 運算子過載的時候最好不要改變優先順序,容易混淆,而且可讀性也不好 過載並不能改變運算子的優先順序 要不然就亂套了 運算子過載的規則 1.友元運算子的引數規則與類成員運算子的引數規則不同,一員運算子必須顯式地宣告一個引數,二員運算子必...

php中的運算子優先順序是什麼樣的

樓上覆制貼上的什麼玩意兒?看這個吧,php的所有運算子優先順序文件都在這裡了 網頁連結,希望採納 php中的 和or,有什麼區別呢?優先順序一樣麼? if asdfjklkj sdfjlk or sadfl sdfkjh 和if asdfads hgk asdfsad fghdfgh 前者全文來字顯...