c語言中,關於運算子和優先順序的問題,具體見圖

2021-03-04 08:54:42 字數 4554 閱讀 9237

1樓:向丶思陽

都是1啊

0||2&&2->0||1->1

2||0&&2->2||0->1

2||2&&0->2||0->1

2樓:水上漂湯

依次是1, 1, 0

c語言指標及運算子優先順序的問題

3樓:匿名使用者

先執行vp++,由於++是在變數後面的,返回vp原來的值(沒有執行++前的值),將0賦值給*vp

如果是*++vp=0,則將0賦值給已經加1的指標中位址

4樓:接接接接接

雁引愁心去,山銜好月來。

c語言中關係運算子的優先順序高於邏輯運算子嗎?

5樓:

是的不是有個優先順序歌嗎

* 圓方括號箭頭一句號.

* 自增自減非反負, 針強位址長度,

* 乘除, 加減, 再移位,

* 小等大等, 等等不等,

* 八位與, 七位異, 六位或, 五與, 四或, 三疑, 二賦, 一真逗.

c語言中的運算子優先順序高低是什麼意思

6樓:學雅思

運算子用於執行程式**運算,會針對乙個以上運算元專案來進行運算。例如:2+3,其運算元是2和3,而運算子則是「+」。

運算子的優先順序是從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的結合次序取決於表示式中各種運算子的優先順序。優先順序高的運算子先結合,優先順序低的運算子後結合,同一行中的運算子的優先順序相同。

擴充套件資料

優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表示式求值順序是從左到右。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

相同優先順序中,按結合性進行結合。大多數運算子結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。

指標最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。

請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7。邏輯運算最後結合。

7樓:匿名使用者

要了解c語言運算子優先順序高低就先從通常數學上運算優先順序高低說起。

通常,乙個數學算式裡如果有加減乘除和括號,我們會先算括號裡面的式子,再算括號外面的乘除再然後才是加減。那麼這時候我們說括號的優先順序比加減乘除的要高,所以我們就先計算括號裡的式子。然後是乘除,再然後才是加減。

其中加減乘除就是運算子。所以運算子的高低決定了運算的先後順序。

同理。c語言中的運算優先順序和這乙個樣,只要你把運算子的優先順序記住就可以了。

8樓:匿名使用者

比如 1+3*3

因為 *的優先順序比+高,所以先執行3*3,在+1。

其實這個不用在意,也不需要背,只要在你需要的運算順序下加()就行了。

比如 1+(3*3)

9樓:擁抱枯木

就是有不同運算子出現在同乙個表示式中,求表示式的值時,優先順序高的運算子先結合求值再求優先順序低的,比如a+b*c,明顯*的優先順序比+高,所以先算b*c,得到的值加上a。另外有些符號優先順序相同,那就有從左到右結合,和從右到左結合,還需要再詳細嗎?

10樓:匿名使用者

誰的優先級別高 就先執行它 的運算

c語言指標和運算子優先順序的問題

11樓:lost_覺悟

和()的優先順序是1,而*的優先順序是2,優先順序小的先處理,所以不加括號的*p[4],就等價於*(p[4]),所以先看p[4]這一部分,就類似a[4]表明這是乙個陣列,那麼*(p[4])就類似*(p),表明是乙個指標,由於先是陣列,那麼*(p[4])就是乙個以指標為元素的陣列,同理 (*p)[4],先是指標,再是陣列(注意1級運算子先左後右),那麼就是乙個指向陣列的指標

12樓:匿名使用者

[ ]優先順序比*的高,不加()時是先運算p[ ],它是陣列,然後運算*,才是指標,也就是 *(p[ ]),表示的是乙個指向陣列的指標;

而 ( *p ) [ ],先運算*,是指標,然後運算[ ],是陣列,也就是由多個指標構成的指標陣列。

13樓:唐道紅

()的優先順序 高啊。所以表示*p有四個整數型別的元素

c語言中算術運算子優先順序的問題

14樓:匿名使用者

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就不再判斷。

在條件運算子中。如a?b:c;先判斷a的值,再根據a的值對b或c之中的乙個進行求值。

賦值表示式則規定先對右邊的表示式求值,因此使 a = b = c = 6;成為可能。

15樓:金魚

1. 運算子的優先順序表

c 語言的符號眾多,由這些符號又組合成了各種各樣的運算子。既然是運算子就一定有其特定的優先順序,下表就是c 語言運算子的優先順序表:

2. 注意事項:

16樓:庹熙系惜萍

++--是

優先順序最高的

一般單目運算的

運算子比多目的優先順序高。請採納。

c語言提供3種邏輯運算子,按優先順序高低它們分別是

17樓:文化廚子

c語言中的三種邏輯運算子為:邏輯非(!),邏輯與(&&)、邏輯或(||)。

按優先順序從高到低排列:!、&&、||,!的優先順序最高,&&的優先順序居中,||的優先順序最低。

18樓:匿名使用者

您好,sa團隊給出的答案優先次序:!(非)→&&(與)→||(或)

19樓:匿名使用者

邏輯運算子的優先順序是相同的,且只有兩個。這兩個邏輯運算子是 : &&、||

c語言邏輯運算子優先順序,C語言的運算子的優先順序邏輯運算子條件運算子賦值運算子關係運算子算術運算子。它們之間的優先順序

4 3 復 5 2 由於 的優先順序高於 和 所以先計制算bai 5 在c中,的操作物件只有du0和1,如果zhi括號裡不為空,不為0或 0 則任dao何東西都被認為是1 所以 5 就等價於 1 也就是0 於是就變成了4 3 0 2.又由於 的級別較低,所以會判斷 4 3 和 0 2 前者為1,也後...

c語言裡面的運算子優先順序如何C語言裡面的運算子優先順序如何?

c語言中,運算子的運算優先順序共分為15 級。1 級最高,15 級最低。在表示式中,優先順序較高的先於優先順序較低的進行運算。而在乙個運算量兩側的運算子 優先順序相同時,則按運算子的結合性所規定的結合方向處理。各等級運算子如下 以下說明中,對傳統的1級和2級做了細化,1和2對應傳統1級,3和4對應傳...

以下運算子中優先順序最高的運算子是abc

a選項,看下圖 不用全部記住,記住平時比較常用的就行了,還有記住 算術運算子 關係運算子 邏輯運算子 賦值運算子 a a是邏輯運算子,但c語言中規定它的優先順序最高,b是算數運算子,d也是邏輯運算子,c是個賦值的,優先順序是!算術運算子 關係運算子 邏輯運算子 a 優先順序一般c語言的書後都有附表的...