C 題目,關於運算子優先順序,一個C 題目,關於運算子優先順序

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

1樓:匿名使用者

樓上的不對,++,--的優先順序高於乘,所以是:a++,a--,然後a還是5,就是5x5=25了

2樓:匿名使用者

這個問題在不同的機器上執行結果不同,結果是未定義的,程式設計的時候要避免這個。

有關這個問題你去迅雷上面搜一下 pointers on c (c 和指標 ),這本書裡面涉及到運算子的部分對這個問題有詳細的講解。我查了一下,在83頁。

ps:如果你c有一定的基礎,建議你買本pointers on c,你會收益匪淺的。

書上原話:

由於表示式的求值順序並非完全有操作符的優先順序決定,所以想下面這樣的語句是很危險的

c+ --c;

.....(還有很多解釋,你自己看看吧)祝好運

3樓:匿名使用者

建議不要使用這樣的寫法,結果是未定義的。取決於執行的平臺。

4樓:匿名使用者

t=++a*--a中,乘法*的優先順序最高,首先計算a*a,然後是++和--的運算,不管是自增還是自減,t的值已經確定,不會改變

5樓:匿名使用者

a儲存地址一樣 從後到前 --a為4 但前面++a為5;結果為5*5

c++ 關於運算子優先順序

6樓:

因為++只是在這copy條語句結束後才+1,假設a=0,則a>a++等同於0>0,當然是錯的了,但是現在a的值變為1

補充一點,c++不提倡在同一語句當中多次修改同一個變數的值,樓主知道怎麼回事就行了,有些跟編譯器有關

7樓:匿名使用者

後置自加是「先取值,變數才加」

所以a>a++ 中,大於運算子比較的是相同的值。

8樓:匿名使用者

a>a++

等價於:

int temp = a;

temp++;

a>a;

a = temp;

9樓:

這裡不是優先順序的問題吧,a > a++ 明顯是假的。。。比如a = 2,那麼你的表示式就變成 2 > 2...能真嗎??

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

10樓:匿名使用者

運算子優先順序

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

運算子優先順序表

優先順序 運算子 結合性

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); //這樣更直觀

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

11樓:匿名使用者

vc6中位239,

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

=15*15+14

=239

12樓:匿名使用者

我剛才用

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

13樓:vc晨vc晨vc晨

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

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

14樓:匿名使用者

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

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

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

c++運算子優先順序問題 20

15樓:匿名使用者

前一部分說的沒錯,編譯器是先求*beg++的值,但是求完了之後,beg已經移動到下一個了,這是你想要的麼?時過境遷,此beg非彼beg了。

第二個問題,++*beg和*beg++完全兩個意思

和 運算子優先順序(C,關於c 運算子優先順序 和 的?

菜刀撒 當然 的優先順序高 p 1 就是先做 p 然後 1 p 1 才是p指標的下一個位置 文庫精選 內容來自使用者 苟燁濤 c c 運算子的優先順序比較 優先順序 運算子 名稱 結合方向 說明 1 陣列下標,圓括號,物件,指標 1 2 型別 sizeof 負號,強制型別轉換,自增,自減,取值,取地...

關於php運算子優先順序問題,在php中運算子優先順序的結合方向是什麼意思?

愛施德傳奇 下表按照優先順序從高到低列出了運算子。同一行中的運算子具有相同優先順序,此時它們的結合方向決定求值順序。運算子優先順序 結合方向 運算子附加資訊 無 clone new clone 和 new 左 array 右 int float string array object bool 型別...

在EXCEL提供的4類運算子中,優先順序最高的是什麼

迷你手工老張 優先順序最高的是等號。公式按特定次序計算數值excel中的公式通常以等號 開始,用於表明之後的字元為公式。緊隨等號之後的是需要進行計算的元素 運算元 各運算元之間以運算子分隔.excel將根據公式中運算子的特定順序從左到右計算公式。如果一個公式中有若干個運算子,excel將按下表中的次...