1. c語言運算符優先順序問題
答案是A;
這樣的:我每一步寫一個計算結果
x+1*(int)(x+y)%2/4
x+1*7%2/4
x+1*1/4
x+1/4
x+0
x
所以是A
我已經在編譯器上編譯過.答案肯定....
2. C語言運算符優先順序口訣
C語言運算符及其優先順序匯總表口訣 圓下箭頭一頓號 非凡增減富強針地長 三乘除,四加減,五移位 千萬別把魚忘記,它在盛飯的廚子里 小燈大燈燈燈不等 爸喂魚,舅疑惑,裸雞也疑惑 十三姨,十四父,十五逗,兜到低 「圓下箭頭一頓號」指的是第15級的運算符。其中圓指的是運算符(),下指的是下標運算符[],箭頭指的是指向結構體成員運算符->,頓號指的是結構體成員運算符、 「非凡增減富強針地長」指的是第14級的運算符。其中非指的是邏輯運算符!,凡指的是按位取反運算符~,增減指的是自增和自減運算符++和--,富指的是負號運算符-,強指的是類型轉換運算符(類型),針指的是指針運算符*,地指的是地址運算符&,長指的是長度運算符Sizeof 「三乘除,四加減,五移位」 指的是第13級到第11級的運算符。其中三四五並無實際意義,只是起區分級別而已。也可以想像三指的是第13級運算符。乘除指的是乘法運算符*和除法運算符/,加減指的是加法運算符+和減法運算符-,移位指的是左移運算符<<和右移運算符>> 「千萬別把魚忘記,它在盛飯的廚子里」指的是求余運算符%,它位於盛飯的廚子里,即指和乘法運算符、除法運算符在一起。 「小燈大燈燈燈不等」 指的是第10級到第9級的運算符。其中小燈大燈指的是關系運算符<、<=、>和>=,燈燈指的是等於運算符==,不等指的是不等於運算符!= 「爸喂魚,舅疑惑,裸雞也疑惑」指的是第8級到第4級的運算符。其中,爸喂魚之指的是第8級的按位與運算符&,舅疑惑指的是第7級的按位異或運算符^和第6級的按位或運算符||,裸雞也疑惑指的是第5級、第4級的邏輯與運算符&&和邏輯或運算符|| 「十三姨,十四父,十五逗,兜到低」指的是第3級到第1級的運算符。其中,十三姨指的是條件運算符?: (三有雙重含義,即指?:的優先順序別是三,它的運算符類型也是三目,?難道不是姨即疑惑嗎?),十四父的十四沒有實際意義,父指的是賦值運算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,十五逗指的是第1級的運算符,兜到低指的是15級運算符以,結束。
3. C語言 關於運算符優先順序問題
沒錯,確實先計算b++,不過b++的運算結果是原來的b而不是+1後的b,副作用是給b++
相當於
a/=b;
b++;
這樣你就清楚了
4. c語言運算符優先順序從高到低的順序依次為
c語言運算符優先順序從高到低的順序依次如下:
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表達式的結合次序取決於表達式中各種運算符的優先順序。優先順序高的運算符先結合,優先順序低的運算符後結合,同一行中的運算符的優先順序相同。
不同類型的運算符之間也有相應的優先順序順序。
一個表達式中既可以包括相同類型的運算符,也可以包括不同類型的運算符或者函數。當多種運算符出現在同一個表達式中時,應該先按照不同類型運算符間的優先順序進行運算。
各種運算符間的優先順序如下:數值運算符、字元串運算符、關系運算符、邏輯運算符。可以用括弧改變優先順序順序,使得括弧內的運算優先於括弧外的運算。對於多重括弧,總是由內到外強製表達式的某些部分優先運行。括弧內的運算總是最優先計算。
5. 求C語言運算符優先順序
優先順序 運算符 名稱或含義 使用形式 結合方向 說明
1 [] 數組下標 數組名[常量表達式] 左到右
() 圓括弧 (表達式)/函數名(形參表)
. 成員選擇(對象) 對象.成員名
-> 成員選擇(指針) 對象指針->成員名
2 - 負號運算符 -表達式 右到左 單目運算符
(類型) 強制類型轉換 (數據類型)表達式
++ 自增運算符 ++變數名/變數名++ 單目運算符
-- 自減運算符 --變數名/變數名-- 單目運算符
* 取值運算符 *指針變數 單目運算符
& 取地址運算符 &變數名 單目運算符
! 邏輯非運算符 !表達式 單目運算符
~ 按位取反運算符 ~表達式 單目運算符
sizeof 長度運算符 sizeof(表達式)
3 / 除 表達式/表達式 左到右 雙目運算符
* 乘 表達式*表達式 雙目運算符
% 余數(取模) 整型表達式/整型表達式 雙目運算符
4 + 加 表達式+表達式 左到右 雙目運算符
- 減 表達式-表達式 雙目運算符
5 << 左移 變數<<表達式 左到右 雙目運算符
>> 右移 變數>>表達式 雙目運算符
6 > 大於 表達式>表達式 左到右 雙目運算符
>= 大於等於 表達式>=表達式 雙目運算符
< 小於 表達式<表達式 雙目運算符
<= 小於等於 表達式<=表達式 雙目運算符
7 == 等於 表達式==表達式 左到右 雙目運算符
!= 不等於 表達式!= 表達式 雙目運算符
8 & 按位與 表達式&表達式 左到右 雙目運算符
9 ^ 按位異或 表達式^表達式 左到右 雙目運算符
10 | 按位或 表達式|表達式 左到右 雙目運算符
11 && 邏輯與 表達式&&表達式 左到右 雙目運算符
12 || 邏輯或 表達式||表達式 左到右 雙目運算符
13 ?: 條件運算符 表達式1? 表達式2: 表達式3 右到左 三目運算符
14 = 賦值運算符 變數=表達式 右到左
/= 除後賦值 變數/=表達式
*= 乘後賦值 變數*=表達式
%= 取模後賦值 變數%=表達式
+= 加後賦值 變數+=表達式
-= 減後賦值 變數-=表達式
<<= 左移後賦值 變數<<=表達式
>>= 右移後賦值 變數>>=表達式
&= 按位與後賦值 變數&=表達式
^= 按位異或後賦值 變數^=表達式
|= 按位或後賦值 變數|=表達式
15 , 逗號運算符 表達式,表達式,… 左到右 從左向右順序運算
說明:
同一優先順序的運算符,運算次序由結合方向所決定。
簡單記就是:! > 算術運算符 > 關系運算符 > && > || > 賦值運算符
6. c語言上運算符優先順序是怎樣的啊
恩,問這個問題的人太多了,懶得繼續回答,直接貼上來自己看。。。
優先順序 運算符 名稱或含義 使用形式 結合方向 說明
1 [] 數組下標 數組名[常量表達式] 左到右
() 圓括弧 (表達式)/函數名(形參表)
. 成員選擇(對象) 對象.成員名
-> 成員選擇(指針) 對象指針->成員名
2 - 負號運算符 -表達式 右到左 單目運算符
(類型) 強制類型轉換 (數據類型)表達式
++ 自增運算符 ++變數名/變數名++ 單目運算符
-- 自減運算符 --變數名/變數名-- 單目運算符
* 取值運算符 *指針變數 單目運算符
& 取地址運算符 &變數名 單目運算符
! 邏輯非運算符 !表達式 單目運算符
~ 按位取反運算符 ~表達式 單目運算符
sizeof 長度運算符 sizeof(表達式)
3 / 除 表達式/表達式 左到右 雙目運算符
* 乘 表達式*表達式 雙目運算符
% 余數(取模) 整型表達式/整型表達式 雙目運算符
4 + 加 表達式+表達式 左到右 雙目運算符
- 減 表達式-表達式 雙目運算符
5 << 左移 變數<<表達式 左到右 雙目運算符
>> 右移 變數>>表達式 雙目運算符
6 > 大於 表達式>表達式 左到右 雙目運算符
>= 大於等於 表達式>=表達式 雙目運算符
< 小於 表達式<表達式 雙目運算符
<= 小於等於 表達式<=表達式 雙目運算符
7 == 等於 表達式==表達式 左到右 雙目運算符
!= 不等於 表達式!= 表達式 雙目運算符
8 & 按位與 表達式&表達式 左到右 雙目運算符
9 ^ 按位異或 表達式^表達式 左到右 雙目運算符
10 | 按位或 表達式|表達式 左到右 雙目運算符
11 && 邏輯與 表達式&&表達式 左到右 雙目運算符
12 || 邏輯或 表達式||表達式 左到右 雙目運算符
13 ?: 條件運算符 表達式1? 表達式2: 表達式3 右到左 三目運算符
14 = 賦值運算符 變數=表達式 右到左
/= 除後賦值 變數/=表達式
*= 乘後賦值 變數*=表達式
%= 取模後賦值 變數%=表達式
+= 加後賦值 變數+=表達式
-= 減後賦值 變數-=表達式
<<= 左移後賦值 變數<<=表達式
>>= 右移後賦值 變數>>=表達式
&= 按位與後賦值 變數&=表達式
^= 按位異或後賦值 變數^=表達式
|= 按位或後賦值 變數|=表達式
15 , 逗號運算符 表達式,表達式,… 左到右 從左向右順序運算
說明:
同一優先順序的運算符,運算次序由結合方向所決定。
簡單記就是:! > 算術運算符 > 關系運算符 > && > || > 賦值運算符
7. C語言運算符優先順序順序
C語言運算符優先順序順序如下所示:
(7)c語言運算優先順序擴展閱讀
一個表達式可以包含多個運算符。在這種情況下,運算符的優先順序決定表達式的哪部分被處理為每個運算符的操作數。例如,按照運算規則,表達式中*、/、以及 % 的優先順序比 + 和 - 高。如下列表達式:
a - b * c
相當於 a-(b*c)。如果想讓操作數以不同的方式組合在一起,則必須使用括弧:
(a - b) * c
如果一個表達式中的兩個操作數具有相同的優先順序,那麼它們的結合律(associativity)決定它們的組合方式是從左到右或是從右到左。例如,算術運算符和操作數的組合方式是從左到右,賦值運算符則是從右到左。
8. C語言的運算符的優先順序是什麼
1、最高級:出現同級別運算符時的結合方向是從左往右(下面級別沒寫結合順序時,默認是從左往右)。
( )圓括弧
[ ]下標運算符號
->指向結構體成員運算符
.結構體成員運算符
9. c語言運算優先順序
優先順序就是當表達式中有多個運算符時,先計算誰,後計算誰。打個比方,在四則運算中乘除的優先順序就高於加減。
但是C語言中的運算符除了加減乘除還有很多,我們也沒必要將所有運算符的優先順序都記住,這里列出來各個運算符的優先順序表,實在需要用到的時候查一下表就行了。而且實際上在編程的時候需要考慮優先順序的情況很少,因為如果不知道優先順序高低的話,加一個括弧就行了,因為括弧的優先順序是最高的。
比如:
k = (j > i) && (8 == i)
根據優先順序的高低,完全可以寫成:
k = j > i && 8 == i
第一種寫法是比較提倡的,因為一看就知道先計算誰後計算誰,節省了大家的時間還不容易出錯。而且加圓括弧也是一種編程規范,因為程序不只是寫給自己看。
此外運算符還有「目」和「結合性」的概念。「目」就是眼睛的意思,一個運算符需要幾個數參與就歸為「幾目」。C語言中大多數運算符都是雙目的,比如 和 運算符;也有單目和三目的,單目運算符如邏輯非 ( !1 );三目運算符即條件運算符,?:也是C語言中的唯一一個三目運算符。
說完了「目」的概念,再來說一說「結合性」。先來煮個栗子:
1 + 2 × 3 / 4
上式中乘法和除法的優先順序相同,但計算的時候是從左往右,所以乘和除的結合性就是從左往右,so easy!
C語言中大多數運算符的結合性都是從左往右,只有三個運算符是從右往左的。一個是單目運算符,另一個是三目運算符,還有一個就是雙目運算符中的賦值運算符 。運算符的「結合性」也不需要死記硬背,在不斷使用中就記住了。