国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言入門篇——操作符篇

這篇具有很好參考價值的文章主要介紹了C語言入門篇——操作符篇。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1、操作符分類

2、操作符的屬性

3、算術(shù)操作符

4、移位操作符

5、位操作符

6、賦值操作符

7、單目操作符

8、關系操作符

9、邏輯操作符

10、條件操作符

11、逗號操作符

12、下標引用、函數(shù)調(diào)用和結(jié)構(gòu)成員


1、操作符分類

算術(shù)操作符(+,-,*,/,%)

移位操作符(<<,>>)

位操作符(&,|,^)

賦值操作符(=,+=,-=,/=,*=,%=,<<=,>>=)

單目操作符(!,-,+,&,sizeof,~,--,++,*,(類型))

關系操作符(>,>=,<,<=,!=,==)

邏輯操作符(&&,||)

條件操作符(exp1?exp2:exp3)

逗號表達式(exp1,exp2,exp3,-expN)

下標引用、函數(shù)調(diào)用和結(jié)構(gòu)成員([],(),->)

2、操作符的屬性

復雜表達式的求值有三個影響的因素:

  1. 操作符的優(yōu)先級
  2. 操作符的結(jié)合性
  3. 是否控制求值順序

兩個相鄰的操作符先執(zhí)行哪一個?取決于它們的優(yōu)先級。如果兩者的優(yōu)先級相同,取決于它們的結(jié)合性

操作符優(yōu)先級
操作符 描述用 用法示例 結(jié)果類型 結(jié)合性 是否控制求值順序
() 聚組 (表達式) 與表達式相同 N/A
() 函數(shù)調(diào)用 rexp(rexp,...,rexp) rexp L-R
[] 下標引用 rexp[rexp] lexp L-R
. 訪問結(jié)構(gòu)成員 lexp.member_name lexp L-R
.> 訪問結(jié)構(gòu)指針成員 rexp->member_name lexp L-R
++ 后綴自增 lexp ++ rexp L-R
-- 后綴自減 lexp -- rexp L-R
邏輯反 ! rexp rexp R-L
~ 按位取反 ~ rexp rexp R-L
+ 單目,表示正值 + rexp rexp R-L
- 單目,表示負值 - rexp rexp R-L
++ 前綴自增 ++ lexp rexp R-L
-- 前綴自減 -- lexp rexp R-L
* 間接訪問 * rexp lexp R-L
& 取地址 & lexp rexp R-L
sizeof 取其長度,以字節(jié) 表示 sizeof rexp sizeof(類型) rexp R-L
(類型) 類型轉(zhuǎn)換 (類型) rexp rexp R-L
* 乘法 rexp * rexp rexp L-R
/ 除法 rexp / rexp rexp L-R
% 整數(shù)取余 rexp % rexp rexp L-R
+ 加法 rexp + rexp rexp L-R
- 減法 rexp - rexp rexp L-R
<< 左移位 rexp << rexp rexp L-R
>> 右移位 rexp >> rexp rexp L-R
> 大于 rexp > rexp rexp L-R
>= 大于等于 rexp >= rexp rexp L-R
< 小于 rexp < rexp rexp L-R
<= 小于等于 rexp <= rexp rexp L-R
== 等于 rexp == rexp rexp L-R
!= 不等于 rexp != rexp rexp L-R
& 位與 rexp & rexp rexp L-R
^ 位異或 rexp ^ rexp rexp L-R
| 位或 rexp | rexp rexp L-R
&& 邏輯與 rexp && rexp rexp L-R
|| 邏輯或 rexp || rexp rexp L-R
?: 條件操作符 rexp ? rexp : rexp rexp N/A
= 賦值 lexp = rexp rexp R-L
+= 以...加 lexp += rexp rexp R-L
-= 以...減 lexp -= rexp rexp R-L
*= 以...乘 lexp *= rexp rexp R-L
/= 以...除 lexp /= rexp rexp R-L
%= 以...取模 lexp %= rexp rexp R-L
<<= 以...左移 lexp <<= rexp rexp R-L
>>= 以...右移 lexp >>= rexp rexp R-L
&= 以...與 lexp &= rexp rexp R-L
^= 以...異或 lexp ^= rexp rexp R-L
|= 以...或 lexp |= rexp rexp R-L
, 以...或 rexp,rexp rexp L-R

3、算術(shù)操作符

算數(shù)操作符有+,-,*,/,%

加法運算符用于加法運算,使其兩側(cè)的值相加。相加的值(運算對象)可以是變量,也可以是常量

sum = num1 + num2

計算機會查看加法運算符右側(cè)的兩個變量,把它們相加,然后把和賦給變量sum

sum,num1,num2都是可修改的左值,每個變量都標識了一個可被賦值的數(shù)據(jù)對象。

但是表達式num1+num2是一個右值

減法運算符用于減法運算,使其左側(cè)的數(shù)減去右側(cè)的數(shù),+和-運算符被稱為二元運算符,這些運算符需要兩個運算對象才能完成操作。

但+和-也能作為符號運算符,減號可用于標明或改變一個值的代數(shù)符號。

a = -100;

b = -a;

以這種形式使用的負號被稱為一元運算符,一元運算符只需要一個運算對象,C90標準添加了一元+運算符,它不會改變運算對象的值或符號。

乘法運算符用*號來表示,使其兩側(cè)的值相乘。相乘的值(運算對象)可以是變量,也可以是常量

除法運算符用/號來表示,/左側(cè)的值是被除數(shù),右側(cè)的值是除數(shù)。有著整數(shù)除法和浮點數(shù)除法,整數(shù)除法和浮點數(shù)除法不同。浮點數(shù)除法的結(jié)果是浮點數(shù),而整數(shù)除法的結(jié)果是整數(shù)。整數(shù)是沒有小數(shù)部分的數(shù)。在C語言中,整數(shù)除法結(jié)果的小數(shù)部分被丟棄,在一過程被稱為截斷。

當/操作符的兩個操作符都為整數(shù),執(zhí)行整數(shù)除法;而只要有浮點數(shù)執(zhí)行的就是浮點數(shù)除法。

求模運算符用%號來表示,求模運算符用于整數(shù)計算。求模運算符給出其左側(cè)整數(shù)除以右側(cè)整數(shù)的余數(shù)。求模運算符的兩個操作數(shù)必須位整數(shù),返回的是整除之后余數(shù),不能用于浮點數(shù)。

4、移位操作符

移位運算符有左移運算符(<<)和右移運算符(>>)。用二進制數(shù)做案例。

左移運算符(<<)將其左側(cè)運算對象每一位的值向左移動其右側(cè)運算對象指定的位數(shù)。左側(cè)運算對象移出左末尾段位的值丟失,用0填充空出的位置。

(0000 0001)<< 2? ? ? ? //表達式

(0000 0100)? ? ? ? ? ? ? ? //結(jié)果值

C語言入門篇——操作符篇

?右移運算符(>>)將左側(cè)運算對象每一位的值向右移動其右側(cè)對象指定的位數(shù)。左側(cè)運算對象移出右末端位的值。對于無符號類型,用0填充空出的位置(邏輯移位);對于有符號類型,其結(jié)果取決于機器,空出的位置可用0填充,或者用符號位(最左端的位)的副本填充(算術(shù)右移)。

C語言入門篇——操作符篇

移位運算符針對2的冪提供快速有效的乘法和除法:

number << n? ? ? ? number乘于2的n次冪

number >> n? ? ? ? 如果number為非負,則用number除以2的n次冪

移位運算符還可用于從較大單元中提取一些位

5、位操作符

位運算符有按位取反~,按位與&,按位或|,按位異或^

都是作用于整形數(shù)據(jù),包括char。之所以叫位運算符,是因為整型操作都是針對每一個位進行,不影響它左右兩邊的位。

一元運算符~把1變?yōu)?,把0變?yōu)?。

~(1001 1010)? --- 》 (0110 0101)

二元運算符&通過逐位比較兩個運算對象,生成一個新值。對于每個位,只有兩個運算對象中響應的位都為1時,結(jié)果才為1(從真/假方面看,只有當兩個位為都為真時,結(jié)果才為真)

(1001?0011) & (0011 1101) --- 》 (0001 0001 )

二元運算符|,通過逐位比較兩個運算對象,生成一個新值。對于每個 位,如果兩個運算對象中相應的位為1,結(jié)果就為1(從真/假方面看,如果兩個運算對象中相應的一個位為真或兩個位都為真,那么結(jié)果為真)。

(1001 0011) | (0011 1101) ---》 (1011 1111)

二元運算符^逐位比較兩個運算對象。對于每個位,如果兩個運算對象 中相應的位一個為1(但不是兩個為1),結(jié)果為1(從真/假方面看,如果兩 個運算對象中相應的一個位為真且不是兩個為同為1,那么結(jié)果為真)。

(1001 0011) ^ (0011 1101) ---》 (1010 1110)

一道有趣的面試題:不能利用臨時變量,如何實現(xiàn)兩個數(shù)的交換,讀者可以想想有哪幾種方法?

C語言入門篇——操作符篇

6、賦值操作符

賦值運算符可以給自己定義的變量重新賦值,例如:

int score = 60;

score = 99;

賦值運算符可以和前面的算術(shù)運算符,位運算符,移位運算符組成復合賦值符,這是C語言語法所允許的。

賦值運算符允許連續(xù)使用,例如:

a = b = c + 1;

7、單目操作符

單目操作符包括!,~,+,-,&,sizeof,--,++,*,(類型)

這里就不介紹!,~,+,-,前面或后面已經(jīng)有介紹了,這里主要介紹其他幾個。

這里的&可不是按位與&,而是取地址符&,取地址符就是獲取當前變量的內(nèi)存地址,想要獲得那個變量的地址,就用&后面跟上那個變量。&后只能跟變量,不能跟常量,因為常量是一個立即數(shù),不是容器,沒有地址。

C語言入門篇——操作符篇

前面就提到過sizeof一嘴,這里再對sizeof進行進一步了解,sizeof運算符以字節(jié)為單位返回運算對象的大?。ㄔ贑中,1字節(jié)定義為char類型占用的空間大小。過去,1字節(jié)通常是8位,但是一些字符集可能使用更大的字節(jié))。運算對象可 以是具體的數(shù)據(jù)對象(如,變量名)或類型。如果運算對象是類型(如, float),則必須用圓括號將其括起來。

C 語言規(guī)定,sizeof 返回 size_t 類型的值。這是一個無符號整數(shù)類型, 但它不是新類型。C有一個 typedef機制(后面再介紹),允許程序員為現(xiàn)有類型創(chuàng)建別名。

++和--,遞增運算符和遞減運算符,執(zhí)行簡單的任務,將其運算對象遞增(減)1,該類運算符以兩種形式出現(xiàn)。第1種方式,++出現(xiàn)在其作用的變量前面, 這是前綴模式;第2種方式,++出現(xiàn)在其作用的變量后面,這是后綴模式。 兩種模式的區(qū)別在于遞增行為發(fā)生的時間不同。下面用一些例子來仔細地查看兩者地區(qū)別:

C語言入門篇——操作符篇

num1后綴遞加是原來的值,num2前綴遞加是原來的值+1,當我們再次打印num1的值的時候,發(fā)現(xiàn)num1的值實際上是加1了,這里就是前綴和后綴的區(qū)別了,前綴++先加1再賦值,后綴++先賦值再加1。初學者有可能在這里會陷入混亂。但是提供一個記憶方法:

?“前綴++處于前,所以理應先++后賦值;后綴++處于后,所以理應先賦值后++”

前綴加加和后綴加加除了上面的區(qū)別,還有著操作符優(yōu)先級的優(yōu)先關系,后綴比前綴的優(yōu)先級要高,這是要牢記的!

間接訪問操作符,通過一個指針訪問它所指向的地址的過程稱為間接訪問或解引用指針。這個用于執(zhí)行間接訪問的操作符是單目操作符*。當我們定義了一個指針變量的時候,當我們使用*得到的值就是該指針變量指向地址的變量的值。

C語言入門篇——操作符篇

在C語言中,類型之間的轉(zhuǎn)換是允許的。而(類型)就是其中一種,被稱為強制類型轉(zhuǎn)換。

強制轉(zhuǎn)換語法:

目標類型 變量名 = (目標類型)源變量名

可以把高類型數(shù)據(jù)轉(zhuǎn)換為低類型數(shù)據(jù),雖然有可能存在隱患,但實際上是可以轉(zhuǎn)換的,高數(shù)據(jù)類型轉(zhuǎn)換為低數(shù)據(jù)類型會產(chǎn)生丟失

低數(shù)據(jù)類型到高數(shù)據(jù)類型排序如下:

char -> short -> int -> long(unsigned char -> unsigned short -> unsigned int -> unsigned long

8、關系操作符

關系操作符包括>,>=,<,<=,!=,==

就跟數(shù)學里的比較一樣,但是要記住一點不能使用數(shù)學思維去寫判斷,下面用一個案例來說明原因:

C語言入門篇——操作符篇

?一些初學者可能會寫出類似的判斷語句,但是結(jié)果卻不如意,因為當執(zhí)行完第一個關系運算符之后會返回真(1)或者假(0),此時進行第二個關系運算符運算的時候,結(jié)果很有可能和實際的結(jié)果不一樣,在這種多個比較之間需要用到邏輯操作符(&&,||)

9、邏輯操作符

邏輯操作符有邏輯與&&,邏輯或||和邏輯非!

3種邏輯運算符
邏輯運算符 含義
&&
||
!

邏輯運算符兩側(cè)的條件必須都為真,整個表達式才為真。邏輯運算符的優(yōu)先級比關系運算符低,所以不必在子表達式兩側(cè)加圓括號。

假設exp1和exp2是兩個簡單的關系表達式(如a?> b或c?== 1000),那么:

當且僅當exp1和exp2都為真時,exp1 && exp2才為真;

如果exp1或exp2為真,則exp1 || exp2為真;

如果exp1為假,則!exp1為真;如果exp1為真,則!exp1為假。

同時需要記得一點,邏輯運算符是執(zhí)行短路求值的,何為短路求值?

在邏輯與&&中,當?shù)谝粋€判斷條件為假的時候直接結(jié)束,不對第二個判斷條件進行判斷;在邏輯或||中,當?shù)谝粋€判斷條件為真的時候直接結(jié)束,不對第二個判斷條件進行判斷。

C語言入門篇——操作符篇

10、條件操作符

C提供條件表達式(conditional expression)作為表達if else語句的一種 便捷方式,該表達式使用?:條件運算符。該運算符分為兩部分,需要 3 個運算對象。

條件運算符是C語言中唯一的三元運算符。條件操作符的格式:expr1?expr2:expr3

如果 expr1 為真(非 0),那么整個條件表達式的值與 expr2 的值相同;如果expr1為假(0),那么整個條件表達式的值與 expr3的值相同。

但是條件操作符也是一個有趣的操作符,看下面這段代碼:

int main(void)
{
	int a = 10, b = 20;
	int c = 0;

	c = (a > b ? a : b);

	printf("a=%d,b=%d,c=%d\n", a, b, c);    //運行之后發(fā)現(xiàn)c的值和a的值一樣

	return 0;
}

運行之后發(fā)現(xiàn)c的值和a的值是一樣的,條件操作符返回的是一個變量,可以賦值。

11、逗號操作符

表達式說明:

表達式1,表達式2,表達式3,...... ,表達式n

逗號表達式的要領:
(1) 逗號表達式的運算過程為:從左往右逐個計算表達式。
(2) 逗號表達式作為一個整體,它的值為最后一個表達式(也即表達式n)的值。
(3) 逗號運算符的優(yōu)先級別在所有運算符中最低。

12、下標引用、函數(shù)調(diào)用和結(jié)構(gòu)成員

[]下標引用操作符

操作數(shù):一個數(shù)組名+一個索引值

下標引用操作符允許對數(shù)組單個元素直接賦值

C語言入門篇——操作符篇

()函數(shù)調(diào)用操作符

接收一個或者多個操作數(shù):第一個操作數(shù)是函數(shù)名,剩余的操作數(shù)就是傳遞給函數(shù)的參數(shù)

C語言入門篇——操作符篇

訪問一個結(jié)構(gòu)的成員

. 結(jié)構(gòu)體.成員名

-> 結(jié)構(gòu)體指針->成員名

當我們通過訪問結(jié)構(gòu)體變量訪問成員變量的時候,我們直接使用直接訪問符(.),當我們通過訪問結(jié)構(gòu)體指針訪問成員變量的時候,我們使用簡潔訪問(->)。

通過一個案例來展示一下:

C語言入門篇——操作符篇文章來源地址http://www.zghlxwxcb.cn/news/detail-422392.html

到了這里,關于C語言入門篇——操作符篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【c語言操作符系列1】^(異或操作符)講解和多種例題詳解

    【c語言操作符系列1】^(異或操作符)講解和多種例題詳解

    目錄 一、^ 是什么(^稱為異或) 二、^的規(guī)律(特點) 三、可利用^秒殺的常見例題(重點) 1、消失的數(shù)字 ?2、不一樣的人生密碼 3、交換兩個數(shù)(不能創(chuàng)建中間變量) 4、找出只出現(xiàn)一個的兩個數(shù)字 是一種操作符, 針對二進制異或而言的 ,兩個數(shù)對應的二進制位相同,異或

    2024年02月16日
    瀏覽(27)
  • <C語言> 操作符

    <C語言> 操作符

    加法(+):用于將兩個操作數(shù)相加。 減法(-):用于將第一個操作數(shù)減去第二個操作數(shù)。 乘法(*):用于將兩個操作數(shù)相乘。 除法(/):用于將第一個操作數(shù)除以第二個操作數(shù)。 取模(%):用于求兩個操作數(shù)相除的余數(shù)。 乘法、除法和取模具有相同的優(yōu)先級,高于加法

    2024年02月12日
    瀏覽(20)
  • 【C語言】操作符

    【C語言】操作符

    算術(shù)操作符 移位操作符 位操作符 賦值操作符 單目操作符 關系操作符 邏輯操作符 條件操作符 逗號操作符 下標引用、函數(shù)調(diào)用和結(jié)構(gòu)成員操作符 除了 % 操作符之外,其他的幾個操作符可以作用于整數(shù)和浮點數(shù)。 對于 / 操作符如果兩個操作數(shù)都為整數(shù),執(zhí)行整數(shù)除法。而只

    2024年01月16日
    瀏覽(27)
  • 【C語言】操作符詳解

    【C語言】操作符詳解

    ??個人主頁:Weraphael ???作者簡介:目前正在回爐重造C語言(2023暑假) ??專欄:【C語言航路】 ?? 希望大家多多支持,咱一起進步!?? 如果文章對你有幫助的話 歡迎 評論?? 點贊???? 收藏 ?? 加關注?? 算術(shù)操作符 位移操作符 位操作符 賦值操作符 單目操作符 關

    2024年02月16日
    瀏覽(25)
  • c語言---操作符(詳解)

    c語言---操作符(詳解)

    算術(shù)操作符: + 、- 、*、/ 、% 移位操作符: 位操作符: | ^ ` 賦值操作符: = 、+= 、 -= 、 = 、 /= 、%= 、= 、= 、= 、|= 、^= 單?操作符: !、++、–、、 、+、-、~ 、sizeof、(類型) 關系操作符: 、= 、 、= 、 == 、 != 邏輯操作符: 、|| 條件操作符: ? : 逗號表達式: , 下標引?: [

    2024年02月22日
    瀏覽(25)
  • C語言操作符例題

    感謝各位大佬對我的支持,如果我的文章對你有用,歡迎點擊以下鏈接 ?????? 個人主頁 ?????? C語言 ????????? C語言例題 ?????? python 下面代碼的結(jié)果是:( ) A.a = 8 b = 23 c = 8 B.a = 9 b = 23 c = 8 C.a = 9 b = 25 c = 8 D.a = 9 b = 24 c = 8 答案 B c=++a是先執(zhí)行++a,也就是a=a+1=6(注意這

    2024年02月04日
    瀏覽(18)
  • C語言:“~”操作符詳解

    ~:含義及用法舉例 文章目錄 前言 一、“~”是什么? 二、原碼、反碼及補碼 1.簡介 2.用法舉例 ①正整數(shù) ②負整數(shù) ③零 三、“~”操作符 1.簡介 2.用法舉例 ①正整數(shù) ②負整數(shù) ③零 本文在簡單介紹原碼反碼補碼的基礎上,介紹“~”操作符的用法。 ~:一種單目操作符,即對

    2024年02月10日
    瀏覽(21)
  • c語言操作符(下)

    c語言操作符(下)

    目錄 ?編輯 逗號表達式 下標訪問[] 函數(shù)調(diào)?()? sizeof 結(jié)構(gòu)成員訪問操作符 結(jié)構(gòu)體 結(jié)構(gòu)體聲明 直接訪問? .成員名 間接訪問? ?結(jié)構(gòu)體指針-成員名 exp1, exp2, exp3, …expN 運算規(guī)則 :從左向右依次執(zhí)?。整個表達式的結(jié)果是 最后?個表達式 的結(jié)果。 如圖c的值為逗號表達式中

    2024年02月19日
    瀏覽(14)
  • C語言初級<操作符>

    C語言初級<操作符>

    C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設計語言。 本篇文章是基于C語言,對入門小知識操作符的講解,展

    2024年02月12日
    瀏覽(21)
  • C語言的操作符

    C語言中的操作符是用于操作變量、常量和表達式的符號,以下是我學習操作符整理的相關知識點。 算數(shù)操作符: + - * / % + 、 - 、 * 、 / 可以用于操作整數(shù)和浮點數(shù) % 只能操作整數(shù),返回整除后的余數(shù) 左移操作符 右移操作符 這兩個只能用于整數(shù) 操作符 操作符 位操作符: | ^

    2024年02月01日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包