c語言關係運算子,c語言中關係運算子和自加自減運算優先順序哪個高

時間 2021-08-11 17:19:59

1樓:蘇嘉愛娛樂

>>是右移運算子,移位運算子的一種:程式設計中,位操作運算子的一種。

c語言中位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。位移位運算子分為左移和右移兩種,均為雙目運算子。第一運算物件是移位物件,第二個運算物件是所移的二進位制位數。

位移位運算子的運算物件、運算規則與結果、結合性如表2-16所示。

移位時,移出的位數全部丟棄,移出的空位補入的數與左移還是右移有關。如果是左移,則規定補入的數全部是0;如果是右移,還與被移位的資料是否帶符號有關。若是不帶符號數,則補入的數全部為0;若是帶符號數,則補入的數全部等於原數的最左端位上的原數(即原符號位)。

擴充套件資料

優先順序:

語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與“-”號結合,執行x-y 運算,然後再執行+z 的運算。

這種自左至右的結合 方向就稱為“左結合性”。而自右至左的結合方向稱為“右結合性”。最典型的右結合 性運算子是賦值運算子。

如x=y=z,由於“=”的右結合性,應先執行y=z 再執行x=(y=z)運算。c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。

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

2樓:本草探花

不會吧,他們的計算結果應該是0、1

第一題,5>4>3中,從左到右運算,先算5>4,明顯該式子成立,邏輯結果是1,把1替代5>4再計算,即1>3,明顯此式子不成立,邏輯結果是0。

第二題,3<2<5,先算3<2,不成立,邏輯結果為0,再算0<5,成立,邏輯結果為1。

所以這兩個題目計算結果應該是0、1

補充知識:我用“邏輯結果”,是因為它們是邏輯運算,關係運算屬於邏輯運算中的一種,邏輯運算的結果只有2個,不是0就是1.

5>4>3、3<2<5這兩個式子在c語言中屬於關係運算,應該按照c語言的語法來算,這個和數學中的不等式是2碼事,不能混淆了

3樓:

5>4>3 : 5>4 為真, 值為 1 ; 1>3 為假, 值為 0

3<2<5 : 3<2 為假, 值為 0 ; 0<5 為真, 值為 1

在c語言中 <<與<<=的區別

4樓:海天盛筵

在c語言中bai

《與<<=唯一的一個區別就du

是作用不同。

c語言zhi

中的>>和《分別dao

是左移運算子和右回移運算子,用於整數在二進答制形式的移位運算;

關係運算子用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。

在c語言中x<<=1等於x=x<<1,是把x左移1位以後值儲存回x裡,x發生變化了。

擴充套件資料:

<<、=運算子在c語言中的功能:

1、《的功能

把“<<”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0。如a<2、=的功能

對物件進行賦值,如a=b,則a的值為b。在c語言中也常常將賦值運算子=與其他的運算子結合起來,表示按照優先順序順序處理物件後,再對物件進行賦值。

結合方向右結合(自右至左)單目運算子

!邏輯非運算子

~按位取反運算子

++自增運算子

--自減運算子

-負號運算子

(型別)型別轉換運算子

*指標運算子

&地址與運算子

sizeof長度運算子

5樓:非常可愛

《與<<=只有一du個區別就是作用zhi不同。

c語言dao中的》和《分別是左移運版算符和右移運算子,用於整權數在二進位制形式的移位運算;

關係運算子用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。

在c語言中x<<=1等於x=x<<1,是把x左移1位以後值儲存回x裡,x發生變化了。

擴充套件資料結合方向右結合(自右至左)單目運算子

!邏輯非運算子

~按位取反運算子

++自增運算子

--自減運算子

-負號運算子

(型別)型別轉換運算子

*指標運算子

&地址與運算子

sizeof長度運算子

6樓:匿名使用者

x << 1 得到的結果是左移1位後的值,它被儲存在一個臨時變數中,與x無關,即x的值不變。

回x <<= 1 相當於 x = x << 1,是答將x左移1位以後的值儲存回x中,x發生了變化。

好比說:

x + 10 得到比x大10的值——在臨時變數中,但x不變。

x += 10 則是x增大10,x變了。

7樓:匿名使用者

不一樣,看看邏輯運算和賦值 優先順序。

8樓:匿名使用者

直接用,別超額度就行

c語言中關係運算子和自加自減運算優先順序哪個高

9樓:仁昌居士

各種運算子間的優先順序從高到低為數值運算子、字串運算子、關係運算子、邏輯運算子。可以用括號改變優先順序順序,使得括號內的運算優先於括號外的運算。對於多重括號,總是由內到外強制表示式的某些部分優先執行。

自加自減運算子屬於數值運算子,優先順序比關係運算子高。

10樓:唯指間流年

不知道現在看到是不是有點遲了,自加的優先順序是要高於關係運算子的,這裡是++y所以首先應該先給y+1再判斷y+1和2的大小,但如果是y++的話就要先判斷y和2的大小,然後再給y+1

11樓:你猜我猜哇擦猜

以自增運算子為例,當自增運算子++作用於一個變數時例如:當i=3時++i這個算術表示式的值為4,同時變數i的值也由原來的3改變為4。

一般情況下,計算表示式後不改變變數本身的值,而++運算子和--運算子組成的表示式計算後,則改變變數的值,這稱為運算子的***。

這類運算子在計算表示式時,一定要注意區分表示式的值和變數的值。

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

12樓:反轉的天空之城

1、最高階:出現同級別運算子時的結合方向是從左往右(下面級別沒寫結合順序時,預設是從左往右)。

( )圓括號

[ ]下標運算子號

->指向結構體成員運算子

.結構體成員運算子

2、第二級:!、~、++、--、-、(型別)、*、&、sizeof。

這一級都是單目運算子號,這一級的結合方向是從右向左。

比如出現*p++,這時*和++同級別,先算右邊,再左邊。

所以*p++等價於*(p++),而不是(*p)++。

3、第**:+、-、*、/、%

這一級都是算術運算子,結合順序和數學學習中一致的,先乘除取餘數,後加減。

4、第四級:<<、>>

這是左移、右移運算子,位運算時可能需要用到。

5、第五級:<、<=、>、>=、!=、==

這些運算子也稱為關係運算子,其中<、<=、>、>=高於!=、==。

6、第六級:&、^、|

這三個符號也是位運算子號,其中內優先順序,&>^>|。

7、第七級:&&、||

邏輯與&&優先順序大於邏輯或||。

8、第八級:?  :

也稱為條件運算子號,是c語言中唯一的一個三目運算子,結合順序是從右往左。

9、第九級:=、+=、-+、*=、/=、%=

這些運算子也叫做賦值運算子,除此之外,>>=、<<=、&=、^=、|=這些賦值運算子也在這一級別內,結合順序是從右往左。

10、最低階:,

逗號運算子也稱為順序求值運算子,在c語言中,運算級別最低。

c語言是一種計算機程式設計語言,它既具有高階語言的特點,又具有組合語言的特點。它由美國貝爾研究所的d.m.

ritchie於2023年推出,2023年後,c語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程式,也可以作為應用程式設計語言,編寫不依賴計算機硬體的應用程式。它的應用範圍廣泛,具備很強的資料處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到c語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如微控制器以及嵌入式系統開發。

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

在vb2005中運算子大致可以分為5種型別:算術運算子、連線運算子、關係運算子、賦值運算子和邏輯運算子。

13樓:

邏輯——算數——關係——條件判斷——賦值

14樓:匿名使用者

這個可以找一本c++的書看一下,上面有一章就是專門介紹這個的,有個表,一目瞭然,便於記憶,希望你能多看看書!

15樓:匿名使用者

一般而言,單目運算子優先順序較高,賦值運算子優先順序低。算術運算子優先順序較高,關係和邏輯運算子優先順序較低。多數運算子具有左結合性,單目運算子、三目運算子、賦值運算子具有右結合性。

恩,問這個問題的人太多了,懶得繼續回答,直接貼上來自己看。。。

優先順序運算子

名稱或含義

使用形式

結合方向說明1

陣列下標

陣列名[常量表示式]

左到右()

圓括號(表示式)/函式名(形參表)

.成員選擇(物件)

物件.成員名

->成員選擇(指標)

物件指標->成員名2-

負號運算子

-表示式

右到左單目運算子

(型別)

強制型別轉換

(資料型別)表示式

++自增運算子

++變數名/變數名++

單目運算子

--自減運算子

--變數名/變數名--

單目運算子

*取值運算子

*指標變數

單目運算子

&取地址運算子

&變數名

單目運算子

!邏輯非運算子

!表示式

單目運算子

~按位取反運算子

~表示式

單目運算子

sizeof

長度運算子

sizeof(表示式)3/

除表示式/表示式

左到右雙目運算子*乘

表示式*表示式

雙目運算子

%餘數(取模)

整型表示式/整型表示式

雙目運算子4+

加表示式+表示式

左到右雙目運算子-減

表示式-表示式

雙目運算子

5<<左移變數《表示式

左到右雙目運算子

>>右移變數》表示式

雙目運算子

6>大於表示式》表示式

左到右雙目運算子

>=大於等於

表示式》=表示式

雙目運算子

<小於表示式《表示式

雙目運算子

<=小於等於

表示式<=表示式

雙目運算子7==

等於表示式==表示式

左到右雙目運算子

!=不等於

表示式!= 表示式

雙目運算子8&

按位與表示式&表示式

左到右雙目運算子9^

按位異或

表示式^表示式

左到右雙目運算子10|

按位或表示式|表示式

左到右雙目運算子

11&&

邏輯與表示式&&表示式

左到右雙目運算子

12||

邏輯或表示式||表示式

左到右雙目運算子

13?:

條件運算子

表示式1? 表示式2: 表示式3

右到左三目運算子14=

賦值運算子

變數=表示式

右到左/=

除後賦值

變數/=表示式

*=乘後賦值

變數*=表示式

%=取模後賦值

變數%=表示式

+=加後賦值

變數+=表示式

-=減後賦值

變數-=表示式

<<=左移後賦值

變數<<=表示式

>>=右移後賦值

變數》=表示式

&=按位與後賦值

變數&=表示式

^=按位異或後賦值

變數^=表示式

|=按位或後賦值

變數|=表示式15,

逗號運算子

表示式,表示式,…

左到右從左向右順序運算

說明:同一優先順序的運算子,運算次序由結合方向所決定。

簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子

c語言中運算子是取整運算子嗎,C語言中“ ”運算子是取整運算子嗎?

終極至尊粉 printf f,f 10.0 3,10.0 3 雙目運算具有左結合性。參與運算量均為整型時,結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。printf d,d 10 3,10 3 printf f,f 10.0 3,10.0 3 c語言有以下幾種取整方法 1 直...

C語言中賦值運算子的含義,C語言中 amp是什麼意思

閔琛不和美 a b的意思是a a b,a和b位運算相 與 後賦給a。類似的還有 a b,a b.a b,a b,a b,a b,a b,a b,a b,跟上面的意思一樣。你儘管放心我的答案吧,我是照著教科書寫的。 雷霖姬清霽 算術自反賦值運算子有加賦值 雙目中綴 減賦值 雙目中綴 乘賦值 雙目中綴 ...

c語言中的邏輯運算子怎麼用,C語言中的邏輯或運算子怎麼打出來?

揚鈺藏思瑩 首先邏輯運算子的優先順序是非 與或,對於 與 只有運算子兩邊同時為真 如果兩邊是表示式則結果都為非0 結果為真即為1,例如 5 3 1 結果就為1,1 1 1結果就為0 對於 或 有一個為真結果就為真即結果為1 例如 2 1 0結果為1 3 3 2 2結果為0 非沒有什麼好說的就是取反 ...