1樓:哈利路亞良夢哄
這裡說的 結合方向 是指 程式讀取運算順序的方向。
其實 這種運算的 完全可以參照 數學 裡面的計算順序記憶例如:1*2+3+6-5+6
計算順序是:1*2 =》 2+3 =》5+6=》11-5=》6+6=12 這樣的意思
2樓:山里阿哥
『++』後置的話優先順序就比『-』高,結合方向不同,所以-i++,若i=1,則最後結果為-1,i=2
'++'前置的話和『-』優先順序相同,結合方向不同
3樓:怪咖先生
一般情況下,一元更高的優先順序,低優先順序的賦值運算子。算術運算子優先順序較高,關係和邏輯運算子的優先順序較低的。多數運營商都左結合,一元,一元運算子,賦值運算子有權關聯。
好了,問這個問題的人太多,懶得繼續回答直接貼上來自己的看看。 。 。優先
運營商的名稱或意義
使用相結合的形式方向 br p>說明:
陣列下標陣列名
[常量表示式
左右()
括號(表示式)/函式名(引數列表) br p>。
成員選擇(物件)
物件。成員名稱
- >成員選擇(指標)
物件的指標 - >成員名稱
2 br p> -
減去運營商
- 表示式
右左一元
a>(型別)
蒙上(資料型別)表達
增量運營商富
+ +變數名/變數名+ 元-
遞減運算子
>- 變數名/變數名 -
元值運算元
*指標變數元&
位址運算子
變數名一元
! 邏輯not運算子
!表示式型別
一元位運算子
表示式一元 br p> sizeof
長度操作
sizeof(表示式)的
/ / a>
除了表現形式/
左到右二元運算子
乘法表示式*表示式
二元運算子
餘數(模)
整數表示式/整型表示式
二元運算子
>加表示式+表示式
二元運算子
- >減少表達 - 表達
二元運算子
<< br p>
左邊的表示式變數「型
二元運算子
>>右變數表示式
>>二進位制經營
表示式》表達
左右二元運算子
> = br p>
大於或等於表示式》 =表示式
<少表示式《表示式
二元運算子
小於或等於
表示式< =表示式
二元運算子
== 平等的表達= =表達
左右二元運算子
! =不等於表達! =表達
二元運算子
&按位與表示式&
表達從左至右
的二元運算子
^ 位xor
表示式^表達
左到右二元運算子
| 位或
表達|表達
左右二元運算子
>邏輯表示式&&表達
左右二元運算子
邏輯或表示式| |表達
>左到右
二元運算子
條件運算子
>表示式1?表示式2:表示式3
右左三一元運算子
br />賦值操作
變數=表示式
從右到左
/ =在扣除
變數賦值/ =表達
乘以分配
變數* =表示式
%= 模分配
變數%=表達
+ =加>後賦值變數+ =表示式
- =減去分配
變數 - =表示式
<<離開後變數賦值<< =表示式
>> =
右後變數賦值》 =表示式
&= 後按位與分配
變數&=的表達
^ =按位異或轉讓後,
變數^ =表達
| =按位or轉讓後
變數=表示式
逗號操作符
表示式,表示式,...左
等差數列由左到右
說明:運營商相同的優先順序,操作順序相結合的方向決定。
簡單的初衷是這樣的:! >算術運算子》關係運算子》 &&> | |>賦值運算子
c語言中邏輯運算子非"!"與"&&"或"||"的優先順序怎麼說?
4樓:a羅網天下
邏輯非的優先順序最高,邏輯與次之,邏輯或最低,即:!(非) → &&(與) → ||(或)
記憶口訣:not(非) and(與) or(或)
運算規則
1)&&:當且僅當兩個運算量的值都為"真"時,運算結果為"真",否則為"假"。
2) || :當且僅當兩個運算量的值都為"假"時,運算結果為"假",否則為"真"。
3) ! :當運算量的值為"真"時,運算結果為"假";當運算量的值為"假"時,運算結果為"真"。
例如,假定x=5,則(x>=0) && (x<10)的值為"真",(x<-1) || (x>5)的值為"假"。
優先順序
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表示式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
相同優先順序中,按結合性進行結合。大多數運算子結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。
基本的優先順序需要記住:
指標最優,單目運算優於雙目運算。如正負號。
先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.
邏輯運算最後結合。
5樓:喜歡種蘑菇
同一優先順序的運算子,結合次序由結合方向所決定。簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子。
6樓:飛雪射鹿笑倚鴛
c語言中邏輯運算子優先順序非"!"與>"&&">"||",建議混合使用的時候加上括號,這樣的**便於自己和其他人維護。
7樓:我喜歡蘆潔
「!」>「&&」>「‖」
8樓:
不知道的就加括號,這是常識,不必記
c語言一道簡單表示式的結合方向和優先順序別的題
9樓:範
第乙個: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");
10樓: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一樣。
11樓:
優先順序運算子
名稱或含義
使用形式
結合方向說明1
陣列下標
陣列名[常量表示式]
左到右()
圓括號(表示式)/函式名(形參表)
.成員選擇(物件)
物件.成員名
->成員選擇(指標)
物件指標->成員名2-
負號運算子
-表示式
右到左單目運算子
(型別)
強制型別轉換
(資料型別)表示式
++自增運算子
++變數名/變數名++
單目運算子
--自減運算子
--變數名/變數名--
單目運算子
*取值運算子
*指標變數
單目運算子
&取位址運算子
&變數名
單目運算子
!邏輯非運算子
!表示式
單目運算子
~按位取反運算子
~表示式
單目運算子
sizeof
長度運算子
sizeof(表示式)3/
除表示式/表示式
左到右雙目運算子*乘
表示式*表示式
雙目運算子
%餘數(取模)
整型表示式/整型表示式
雙目運算子4+
加表示式+表示式
左到右雙目運算子-減
表示式-表示式
雙目運算子
5<<左移變數《表示式
左到右雙目運算子
>>右移變數》表示式
雙目運算子
6>大於表示式》表示式
左到右雙目運算子
>=大於等於
表示式》=表示式
雙目運算子
<小於表示式《表示式
雙目運算子
<=小於等於
表示式<=表示式
雙目運算子7==
等於表示式==表示式
左到右雙目運算子
!=不等於
表示式!= 表示式
雙目運算子8&
按位與表示式&表示式
左到右雙目運算子9^
按位異或
表示式^表示式
左到右雙目運算子10|
按位或表示式|表示式
左到右雙目運算子
11&&
邏輯與表示式&&表示式
左到右雙目運算子
12||
邏輯或表示式||表示式
左到右雙目運算子
13?:
條件運算子
表示式1? 表示式2: 表示式3
右到左三目運算子14=
賦值運算子
變數=表示式
右到左/=
除后賦值
變數/=表示式
*=乘後賦值
變數*=表示式
%=取模後賦值
變數%=表示式
+=加後賦值
變數+=表示式
-=減後賦值
變數-=表示式
<<=左移後賦值
變數<<=表示式
>>=右移後賦值
變數》=表示式
&=按位與後賦值
變數&=表示式
^=按位異或後賦值
變數^=表示式
|=按位或後賦值
變數|=表示式15,
逗號運算子
表示式,表示式,…
左到右從左向右順序運算
說明:同一優先順序的運算子,運算次序由結合方向所決定。
c語言中指標運算子*和自增運算子++的優先順序
12樓:慶年工坊
c語言中自增運算子++作為字尾的話比指標運算子*的優先順序高,作為字首的話與指標運算子*平級。
c語言的運算子主要用於構成表示式,同乙個符號在不同的表示式中,其作用並不一致。下面按計算的優先順序,分別說明不同作用的表示式。需要特別指出,在c語言標準中,並沒有結合性的說法。
相同優先順序運算子,從左至右依次運算。注意字尾運算優先順序高於字首。因此++i++應解釋為++(i++)。
而與或非的運算優先順序都不一樣,因此a && b || b && c解釋為(a && b)|| (b && c)
合理使用優先順序可以極大簡化表示式。
基本表示式 1級
基本表示式(primary expressions),主要是用於運算子之間,做為運算數。
標識,常量,字串文字量,優先順序提公升表示式最優先執行。
優先順序提公升表示式是指圓括號包圍的表示式,如「( expression )」
字尾表示式 2級
postfix-expression [ expression ],陣列下標運算。
postfix-expression (argument-expression-list),函式呼叫,括號內的引數可選。
postfix-expression . identifier,成員訪問,
postfix-expression -> identifier,成員訪問,->號之前應為指標。
postfix-expression ++,字尾自增
postfix-expression --,字尾自減
( type-name )
( type-name ) 復合初始化,c99後新增。
單目/一元運算 3級
++ unary-expression 字首自增
-- unary-expression 字首自減
unary-operator cast-expression 單目轉型表式式, 包括 取位址& ,提領 * , 正號+ ,負號- 位反~ 邏輯否!。
sizeof unary-expression 求型別長度,對表示式求型別長度
sizeof ( type-name ) 求型別長度
強制型別表示式 4級
(type-name ) cast-expression,強制表示式成為type-name指定的型別。
乘法表示式 5級
「 * 」 乘法運算子;「 / 」除法運算子;「 % 」 取餘運算子。
加法運算子 6級
「 + 」加法運算子;「 - 」減法運算子。
移位運算子 7級
<< 左移運算子;>> 右移運算子。
關係運算子 8級
<、<=、>、>=關係運算子。
相等運算子 9級
「 == 」等於運算子;「 != 」不等於運算子。
位與運算子 10級
「 & 」按位與運算子
位異或運算子 11級
「 ∧ 」按位異或運算子(bitwiseexclusive or operator)。
位或運算子 12 級
「 | 」按位或運算子(bitwiseinclusive or operator)。
邏輯與運算子 13級
「&&」邏輯與運算子。
邏輯或運算子 14 級
「 || 」邏輯或運算子。
三元條件運算子 15級
? :條件運算子。
賦值運算子 16 級
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算子。
逗號運算子 17級
「,」逗號運算子。
PHP運算子優先順序,php中的運算子優先順序是什麼樣的
php運算子優先順序 由低到高 結合方向 運算子 左 左 or 左 xor 左 and 右 print 右 左 左 左 左 左 左 無 無 左 左 左 右 int float string array object 右 無 new 由此表可以看到,的優先順序最高,其次是 最後才是?而?是左結合的,所...
和 運算子優先順序(C,關於c 運算子優先順序 和 的?
菜刀撒 當然 的優先順序高 p 1 就是先做 p 然後 1 p 1 才是p指標的下一個位置 文庫精選 內容來自使用者 苟燁濤 c c 運算子的優先順序比較 優先順序 運算子 名稱 結合方向 說明 1 陣列下標,圓括號,物件,指標 1 2 型別 sizeof 負號,強制型別轉換,自增,自減,取值,取地...
c 中關於等運算子優先順序的運算
系儉佴綾 你的四個式子是在同一個程式中的且是依此的吧?若是,運算如下i 與 i的區別 i 是先令i參加其它運算,然後再令i加1 而 i是先令i加1,然後再令i參加其它運算。同 對 i j 相當於2 4 6上式運算完後i變為3,j變為4。對 j 5 j i j 5相當於3 5 15,此時j變為3,i也...