1樓:範
第一個:n+=n-=n*n 是從右往左結合的,n-=n*n=n=n-n*n=-2;前面是 n=n+n=-4;
第二個,不清楚,反正&&是「與」命題,就是必須滿足兩邊同時成立才為真;
第二個問題:輸出「##」和「**」就不用說了,我們說說3 4 5 ,((x%2) ? "##%d" :
"**%d\n")意思是x對2求餘,從x=3開始直到x<6結束,如果除得盡就輸出後面的("**%d「),如果除不盡就數出("##%d");
2樓:go浪人生
賦值運算是從右到左。
1、n+=n-=n*n 可以轉換成 n=n+(n=n-n*n) (n=2) 先算括號可得n=-2 所以n = -2 + (-2) n= -4;
2、優先順序從高到低是括號、邏輯非(!)和位反(~)、乘除、加減、邏輯與(&&)和或(||)、位與和位或…… 所以結果是 1。
3、表示式1 ? 表示式2 : 表示式3 的意思是:
如果表示式1成立就取表示式2的值,否則取表示式3的值。3%2 結果是1,表示成立,所以列印 ##3,4%2 結果是0,表示不成立,所以列印 **4,5和3一樣。
3樓:
優先順序運算子
名稱或含義
使用形式
結合方向說明1
陣列下標
陣列名[常量表示式]
左到右()
圓括號(表示式)/函式名(形參表)
.成員選擇(物件)
物件.成員名
->成員選擇(指標)
物件指標->成員名2-
負號運算子
-表示式
右到左單目運算子
(型別)
強制型別轉換
(資料型別)表示式
++自增運算子
++變數名/變數名++
單目運算子
--自減運算子
--變數名/變數名--
單目運算子
*取值運算子
*指標變數
單目運算子
&取地址運算子
&變數名
單目運算子
!邏輯非運算子
!表示式
單目運算子
~按位取反運算子
~表示式
單目運算子
sizeof
長度運算子
sizeof(表示式)3/
除表示式/表示式
左到右雙目運算子*乘
表示式*表示式
雙目運算子
%餘數(取模)
整型表示式/整型表示式
雙目運算子4+
加表示式+表示式
左到右雙目運算子-減
表示式-表示式
雙目運算子
5<<左移變數《表示式
左到右雙目運算子
>>右移變數》表示式
雙目運算子
6>大於表示式》表示式
左到右雙目運算子
>=大於等於
表示式》=表示式
雙目運算子
<小於表示式《表示式
雙目運算子
<=小於等於
表示式<=表示式
雙目運算子7==
等於表示式==表示式
左到右雙目運算子
!=不等於
表示式!= 表示式
雙目運算子8&
按位與表示式&表示式
左到右雙目運算子9^
按位異或
表示式^表示式
左到右雙目運算子10|
按位或表示式|表示式
左到右雙目運算子
11&&
邏輯與表示式&&表示式
左到右雙目運算子
12||
邏輯或表示式||表示式
左到右雙目運算子
13?:
條件運算子
表示式1? 表示式2: 表示式3
右到左三目運算子14=
賦值運算子
變數=表示式
右到左/=
除後賦值
變數/=表示式
*=乘後賦值
變數*=表示式
%=取模後賦值
變數%=表示式
+=加後賦值
變數+=表示式
-=減後賦值
變數-=表示式
<<=左移後賦值
變數<<=表示式
>>=右移後賦值
變數》=表示式
&=按位與後賦值
變數&=表示式
^=按位異或後賦值
變數^=表示式
|=按位或後賦值
變數|=表示式15,
逗號運算子
表示式,表示式,…
左到右從左向右順序運算
說明:同一優先順序的運算子,運算次序由結合方向所決定。
c語言運算的優先順序別和結合方向表是什麼的?
4樓:匿名使用者
優先順序和結合性
c語言中,運算子的運算優先順序共分為15級。1級最高,15級最低。在表示式中,優先順序較高的先於優先順序較低的進行運算。
而在一個運算量兩側的運算子優先順序相同時, 則按運算子的結合性所規定的結合方向處理。 c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。
如有表示式x-y+z則y應先與「-」號結合, 執行x-y運算,然後再執行+z的運算。這種自左至右的結合方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。
最典型的右結合性運算子是賦值運算子。如x=y=z,由於「=」的右結合性,應先執行y=z再執行x=(y=z)運算。 c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。
運算子的種類c語言的運算子可分為以下幾類:
1.算術運算子
用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。
2.關係運算子
用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。
3.邏輯運算子
用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
4.位操作運算子
參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
5.賦值運算子
用於賦值運算,分為簡單賦值(=)、複合算術賦值(+=,-=,*=,/=,%=)和複合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
6.條件運算子
這是一個三目運算子,用於條件求值(?:)。
7.逗號運算子
用於把若干表示式組合成一個表示式(,)。
8.指標運算子
用於取內容(*)和取地址(&)二種運算。
9.求位元組數運算子
用於計算資料型別所佔的位元組數(sizeof)。
10.特殊運算子
有括號(),下標,成員(→,.)等幾種。
c語言中運算子的「結合方向」到底是怎麼回事啊!
5樓:匿名使用者
優先順序和結合性
c語言中,運算子的運算優先順序共分為15級。1級最高,15級最低。在表示式中,優先順序較高的先於優先順序較低的進行運算。
而在一個運算量兩側的運算子優先順序相同時, 則按運算子的結合性所規定的結合方向處理。 c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。
如有表示式x-y+z則y應先與「-」號結合, 執行x-y運算,然後再執行+z的運算。這種自左至右的結合方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。
最典型的右結合性運算子是賦值運算子。如x=y=z,由於「=」的右結合性,應先執行y=z再執行x=(y=z)運算。 c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。
運算子的種類c語言的運算子可分為以下幾類:
1.算術運算子
用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。
2.關係運算子
用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。
3.邏輯運算子
用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
4.位操作運算子
參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
5.賦值運算子
用於賦值運算,分為簡單賦值(=)、複合算術賦值(+=,-=,*=,/=,%=)和複合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
6.條件運算子
這是一個三目運算子,用於條件求值(?:)。
7.逗號運算子
用於把若干表示式組合成一個表示式(,)。
8.指標運算子
用於取內容(*)和取地址(&)二種運算。
9.求位元組數運算子
用於計算資料型別所佔的位元組數(sizeof)。
10.特殊運算子
有括號(),下標,成員(→,.)等幾種。
6樓:
一般編譯器是把表示式由中綴形式(即一般形式)根據優先順序轉換為字尾形式,如3+2*5轉換為2 5 * 3 +,然後再從左到右運算
c語言中運算子優先順序排序
7樓:匿名使用者
c語言中運算子優先順序排序如下:
分為優先順序15級:
1、圓括號【()】、下標運算子【】、分量運算子的指向結構體成員運算子【->】、結構體成員運算子【.】;
2、邏輯非運算子【!】、按位取反運算子【~】、自增自減運算子【++】【 --】、負號運算子【-】、型別轉換運算子【(型別)】、指標運算子和取地址運算子【*】【&】、長度運算子【sizeof】;
3、乘法運算子【*】、除法運算子【/】、取餘運算子【%】;
4、加法運算子【+】、減法運算子【-】;
5、左移動運算子【<<】、右移動運算子【>>】;
6、關係運算子【< 】【>】【<=】【 >= 】;
7、等於運算子【==】、不等於運算子【!=】;
8、按位與運算子【&】;
9、按位異或運算子【^】;
10、按位或運算子【|】;
11、邏輯與運算子【&&】;
12、邏輯或運算子【||】;
13、條件運算子【?:】;
14、賦值運算子【=】【/=】【*=】【%=】【+=】【-=】【<<=】【>>=】【&=】【^=】【|=】;
15、逗號運算子【,】。
8樓:一停恍惚
c語言中,運算子的運算優先順序共分為15 級。1 級最高,15 級最低。 在表示式中,優先順序較高的先於優先順序較低的進行運算。
而在一個運算量兩側的運算子 優先順序相同時,則按運算子的結合性所規定的結合方向處理。
9樓:來則安之
1級優先順序 左結合
() 圓括號
下標運算子
-> 指向結構體成員運算子
. 結構體成員運算子
2級優先順序 右結合
! 邏輯非運算子
~ 按位取反運算子
++ 字首增量運算子
-- 字首增量運算子
+ 正號運算子
- 負號運算子
(型別) 型別轉換運算子
* 指標運算子
& 地址與運算子
sizeof 長度運算子
3級優先順序 左結合
* 乘法運算子
/ 除法運算子
% 取餘運算子
4級優先順序 左結合
+ 加法運算子
- 減法運算子
5級優先順序 左結合
<< 左移運算子
>> 右移運算子
6級優先順序 左結合
<、<=、>、>= 關係運算子
7級優先順序 左結合
== 等於運算子
!= 不等於運算子
8級優先順序 左結合
& 按位與運算子
9級優先順序 左結合
^ 按位異或運算子
10級優先順序 左結合
| 按位或運算子
11級優先順序 左結合
&& 邏輯與運算子
12級優先順序 左結合
|| 邏輯或運算子
13級優先順序 右結合
? : 條件運算子
14級優先順序 右結合
= += -= *= /= %= &= ^= |= <<= >>= 全為賦值運算子
15級優先順序 左結合
, 逗號運算子
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。其它的都是從左至右結合。
具有最高優先順序的其實並不算是真正的運算子,它們算是一類特殊的操作。()是與函式相關,與陣列相關,而->及.是取結構成員。
其次是單目運算子,所有的單目運算子具有相同的優先順序,因此在我認為的 真正的運算子中它們具有最高的優先順序,又由於它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的。
另外在c語言裡 沒有前置後置之分 因為++ -- 是右結合所以 右側優先運算 表現為 "後置優先順序比較高" 的假象 前置和後置的區分是因為運算子過載而後加入c++的
接下來是算術運算子,*、/、%的優先順序當然比+、-高了。
移位運算子緊隨其後。
其次的關係運算子中,< <= > >=要比 == !=高一個級別,不大好理解。
所有的邏輯操作符都具有不同的優先順序(單目運算子出外,!和~)
邏輯位操作符的"與"比"或"高,而"異或"則在它們之間。
跟在其後的&&比||高。
接下來的是條件運算子,賦值運算子及逗號運算子。
在c語言中,只有4個運算子規定了運算方向,它們是&&、| |、條件運算子及賦值運算子。
&&、| |都是先計算左邊表示式的值,當左邊表示式的值能確定整個表示式的值時,就不再計算右邊表示式的值。如 a = 0 && b; &&運算子的左邊位0,則右邊表示式b就不再判斷。 望採納
求一道c語言程式設計問題將表示式展開如
這個問題其實很複雜,本人可以提供一個思路 至少要寫一段程式,能夠解析含有加法減法和括號的表示式。然後在此基礎上,再實現一下去括號的功能就可以了。 魔方的第qi面 963438718 篇幅太長,這樣不好寫 超幸福的小思緒 c include include include using namespac...
C語言的一些表示式,求c語言表示式大全
是給leap 這個物件賦值,賦的值是一個布林型的變數 可以用括號讓表示式明確點。year 4 0 year 100 0 year 400 0 是求餘。意思就是。變數year 對對4整除但是又不對100整除。或者對400整除。本質是求year是否為閏年。如果是閏年,則leap true,否則則leap...
C語言簡單表示式題目,速度,馬上要
1.5 解答 逗號表示式的值是最後一個語句的 值。即3 2。2.0 解答 x x x x 2 2 x 4 x x 4 x 2 4 x 0。注意整數相除的截斷,不存在四捨五入。4.0 解答 a b 1 變形 a b 1 a的值為0,b 1的值為0,1 0為 0。5.0 解答 4的二進位制表示為 010...