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

C語言——操作符詳解

這篇具有很好參考價(jià)值的文章主要介紹了C語言——操作符詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

哈嘍,大家好,今天我們來學(xué)習(xí)C語言中的各中操作符。

目錄

1.操作符的分類

2.算數(shù)操作符

整數(shù)的二進(jìn)制表示

3.位移操作符

3.1左移操作符

3.2右移操作符

4.位操作符

5.賦值操作符

6.單目操作符

6.1 單目操作符介紹

~ 的用法:

6.2 sizeof 和 數(shù)組

7.關(guān)系操作符

8.邏輯操作符

9. 條件操作符

10. 逗號(hào)表達(dá)式

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


1.操作符的分類

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

移位操作符 :? <<? ? >>

位操作符 :? &? |? ^

賦值操作符: =? +=? -=? *=? /=?

單目操作符 :? !? ?sizeof? ?+? ?-? ? ~? &? *

關(guān)系操作符 : >? <? >=? <=? ==? !=

邏輯操作符 :? &&? ||

條件操作符 : ? : :

逗號(hào)表達(dá)式 : ,

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

?下面我們將一一學(xué)習(xí)這些操作符

2.算數(shù)操作符

? ?+? ? ? ?-? ? ? ?*? ? ? /? ? ? ?%

這里的 “+”? “ - ”? “ * ” 是我們非常熟悉的,就不再介紹了,但“ / ”?和“ % ”值得我們注意

  1. 除了 % 操作符之外,其他的幾個(gè)操作符可以作用于整數(shù)和浮點(diǎn)數(shù)。
  2. 對(duì)于 / 操作符如果兩個(gè)操作數(shù)都為整數(shù),執(zhí)行整數(shù)除法。而只要有浮點(diǎn)數(shù)執(zhí)行的就是浮點(diǎn)數(shù)除法。
  3. % 操作符的兩個(gè)操作數(shù)必須為整數(shù)。返回的是整除之后的余數(shù)

整數(shù)的二進(jìn)制表示

整數(shù)的二進(jìn)制表示有三種形式:

原碼

反碼

補(bǔ)碼

1.正整數(shù)原碼,反碼,補(bǔ)碼相同

2.負(fù)數(shù)的原碼,反碼,補(bǔ)碼需要計(jì)算

?不管是正整數(shù)還是負(fù)整數(shù)都可以寫出二進(jìn)制原碼

1.根據(jù)正負(fù)直接寫出的二進(jìn)制序列就是原碼

C語言——操作符詳解

?對(duì)于正數(shù)15,它的原碼,反碼,補(bǔ)碼相同,而負(fù)數(shù)則可通過下圖的方式進(jìn)行計(jì)算:

C語言——操作符詳解

?整數(shù)在內(nèi)存中存儲(chǔ)的是補(bǔ)碼,計(jì)算的時(shí)候也是使用補(bǔ)碼計(jì)算的

3.位移操作符

<<??左移操作符

>>??右移操作符

注:移位操作符的操作數(shù)只能是整數(shù)。

?這里左移和右移移動(dòng)的是二進(jìn)制

3.1左移操作符

我們來分析下面的代碼

C語言——操作符詳解

右移分為兩種:

算數(shù)右移右邊的丟棄,左邊補(bǔ)原來的符號(hào)位

邏輯右移右邊的丟棄,左邊直接補(bǔ)0

一般編譯器采用的是算數(shù)右移,C語言沒有明確規(guī)定到底是算數(shù)唯一還是邏輯位移。

C語言——操作符詳解

? 讓我來運(yùn)行上面的代碼:

C語言——操作符詳解

?此時(shí)a的值還是15,但b得到的是a右移一位的結(jié)果7,而且a的值沒有發(fā)生改變

判斷VS編譯器采用的是邏輯位移還是算數(shù)位移:

使用下面的代碼來判斷:

C語言——操作符詳解

?因?yàn)?15用兩種位移產(chǎn)生的結(jié)果是不同的:

C語言——操作符詳解

?上述代碼運(yùn)行結(jié)果:

C語言——操作符詳解

?因此VS編譯器采用的是算數(shù)位移。

而且我們發(fā)現(xiàn)右移一位對(duì)正數(shù)有 /2 (除2)的效果

3.2右移操作符

左移操作符就是左邊丟棄,右邊補(bǔ)0

?同樣用代碼來學(xué)習(xí):

C語言——操作符詳解

?C語言——操作符詳解

C語言——操作符詳解

?警告? :

對(duì)于移位運(yùn)算符,不要移動(dòng)負(fù)數(shù)位,這個(gè)是標(biāo)準(zhǔn)未定義的。

4.位操作符

位操作符有:

&? ? 按位與

?|?? ?按位或

^?? ?按位異或

注:他們的操作數(shù)必須是整數(shù)

按位與? &

按位與也是操作二進(jìn)制位,對(duì)應(yīng)兩個(gè)二進(jìn)制的每一位,有0則為0,兩個(gè)同時(shí)為1才是1.

分析下面代碼運(yùn)行的結(jié)果:

C語言——操作符詳解

?C語言——操作符詳解

?程序運(yùn)行結(jié)果:C語言——操作符詳解

按位或 |

按位或計(jì)算方法:對(duì)應(yīng)兩個(gè)二進(jìn)制的每一位,有1則為1,兩個(gè)同時(shí)為0才是0

分析下面代碼運(yùn)行的結(jié)果:

C語言——操作符詳解

C語言——操作符詳解

??程序運(yùn)行結(jié)果:C語言——操作符詳解

按位異或 ^

?按位異或計(jì)算方法:對(duì)應(yīng)兩個(gè)二進(jìn)制的為一位,相同則為0,相異則為1

分析下面代碼結(jié)果:

C語言——操作符詳解

C語言——操作符詳解

?程序輸出結(jié)果:

C語言——操作符詳解

?一道面試題:

?不能創(chuàng)建臨時(shí)變量(第三個(gè)變量),實(shí)現(xiàn)兩個(gè)數(shù)的交換。

?方法一:

C語言——操作符詳解

?方法二:

C語言——操作符詳解

?原理:

C語言——操作符詳解

?兩種方法都能交換a,b,但方法一可能會(huì)溢出,而方法而不會(huì)

C語言——操作符詳解

5.賦值操作符

賦值操作符是一個(gè)很棒的操作符,他可以讓你得到一個(gè)你之前不滿意的值。也就是你可以給自己重新賦 值。

C語言——操作符詳解

?復(fù)合賦值符

+=

-=

*=

/=

%=

>>=

<<=?

&=

|=

^=

這些運(yùn)算符都可以寫成復(fù)合的效果

C語言——操作符詳解

6.單目操作符

6.1 單目操作符介紹

C語言——操作符詳解

~ 的用法:

~ 對(duì)一個(gè)數(shù)的補(bǔ)碼二進(jìn)制位取反,包括符號(hào)位

C語言——操作符詳解

C語言——操作符詳解

C語言——操作符詳解

擴(kuò)展:將二進(jìn)制某一位由0改成1,1改成0的方法

C語言——操作符詳解

6.2 sizeof 和 數(shù)組

sizeof是一個(gè)操作符,不是函數(shù),sizeof計(jì)算的是類型創(chuàng)建變量的大小,單位是字節(jié)

sizeof用法:

C語言——操作符詳解

C語言——操作符詳解

?sizeof計(jì)算數(shù)組大?。?/p>

C語言——操作符詳解

?C語言——操作符詳解

?分析下面的代碼:

void test1(int arr[])
{
	printf("%d\n", sizeof(arr));//(2)
}
void test2(char ch[])
{
	printf("%d\n", sizeof(ch));//(4)
}
int main()
{
	int arr[10] = { 0 };
	char ch[10] = { 0 };
	printf("%d\n", sizeof(arr));//(1)
	printf("%d\n", sizeof(ch));//(3)
	test1(arr);
	test2(ch);
	return 0;
}
問:
(1)、(2)兩個(gè)地方分別輸出多少?
(3)、(4)兩個(gè)地方分別輸出多少?

?再(2),(4)中打印的是指針變量的大小,32位系統(tǒng)下4個(gè)字節(jié),64位系統(tǒng)下8個(gè)字節(jié)C語言——操作符詳解

7.關(guān)系操作符

C語言——操作符詳解

8.邏輯操作符

C語言——操作符詳解

?閏年的判斷:

int main()
{
	int y = 0;
	scanf("%d", &y);
	if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
	{
		printf("是閏年\n");
	}
	else
	{
		printf("不是閏年\n");
	}
	return 0;
}

?筆試題

程序的輸出結(jié)果是什么?

C語言——操作符詳解

C語言——操作符詳解

?&&操作符,左邊為,右邊就不計(jì)算了

程序的輸出結(jié)果是什么?

C語言——操作符詳解

?C語言——操作符詳解

? ||操作符,左邊為,右邊就不計(jì)算了

區(qū)分邏輯與按位與

區(qū)分邏輯或按位或

9. 條件操作符

exp1 ? exp2 : exp3

條件操作符也稱為三目操作符(有三個(gè)操作數(shù))

C語言——操作符詳解

?條件操作符可以簡(jiǎn)化代碼:

C語言——操作符詳解

?用條件操作符求兩數(shù)的較大值:

C語言——操作符詳解

10. 逗號(hào)表達(dá)式

exp1,? exp2,? exp3, …expN

逗號(hào)表達(dá)式,就是用逗號(hào)隔開的多個(gè)表達(dá)式。

逗號(hào)表達(dá)式,從左向右依次執(zhí)行。整個(gè)表達(dá)式的結(jié)果是最后一個(gè)表達(dá)式的結(jié)果。

分析:

C語言——操作符詳解

?答案是13

逗號(hào)表達(dá)式的某些妙用:

C語言——操作符詳解

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

1. [ ] 下標(biāo)引用操作符

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

C語言——操作符詳解

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

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

struct Book
{
	char name[30];
	char author[20];
	float price;
};
void Print(struct Book* p)
{
	//printf("%s %s %.1f\n", (*p).name, (*p).author, (*p).price);
	printf("%s %s %.1f\n", p->name, p->author, p->price);
}
int main()
{
	struct Book b1 = { "C語言","李華",30.5f };
	struct Book b2 = { "數(shù)據(jù)結(jié)構(gòu)","張三",50.5f };
	printf("%s %s %.1f\n", b1.name, b1.author, b1.price);
	printf("%s %s %.1f\n", b2.name, b2.author, b2.price);
	Print(&b1);
	Print(&b2);
	return 0;
}

C語言——操作符詳解

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

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

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

struct Book
{
	char name[30];
	char author[20];
	float price;
};
void Print(struct Book* p)
{
	//printf("%s %s %.1f\n", (*p).name, (*p).author, (*p).price);
	printf("%s %s %.1f\n", p->name, p->author, p->price);
}
int main()
{
	struct Book b1 = { "C語言","李華",30.5f };
	struct Book b2 = { "數(shù)據(jù)結(jié)構(gòu)","張三",50.5f };
	printf("%s %s %.1f\n", b1.name, b1.author, b1.price);
	printf("%s %s %.1f\n", b2.name, b2.author, b2.price);
	return 0;
}

到這里,C語言的操作符我們就基本學(xué)完了。文章來源地址http://www.zghlxwxcb.cn/news/detail-449123.html

到了這里,關(guān)于C語言——操作符詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【C語言】操作符----詳解

    【C語言】操作符----詳解

    ??博客主頁:江池俊的博客 ?收錄專欄:C語言初階之路 ??其他專欄:數(shù)據(jù)結(jié)構(gòu)探索 ??代碼倉庫:江池俊的代碼倉庫 ?? 如果覺得博主的文章還不錯(cuò)的話,請(qǐng)點(diǎn)贊??收藏?? 三連支持一下博主?? 目錄 操作符分類:? ???算術(shù)操作符? ???移位操作符? 原碼、反碼、補(bǔ)碼

    2024年02月14日
    瀏覽(20)
  • 【c語言操作符系列1】^(異或操作符)講解和多種例題詳解

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

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

    2024年02月16日
    瀏覽(28)
  • C語言操作符詳解(下)

    C語言操作符詳解(下)

    在C語言操作符詳解(上)中,已經(jīng)詳細(xì)系統(tǒng)的介紹了各種操作符及其使用場(chǎng)景。 接下來,本文將逐步介紹編譯器執(zhí)行這些代碼背后所做的事情、操作符優(yōu)先級(jí)、結(jié)合性以及求值順序! 表達(dá)式求值的順序一部分是由 操作符的優(yōu)先級(jí)和結(jié)合性決定。 同樣,有些表達(dá)式的操作數(shù)在

    2024年02月05日
    瀏覽(21)
  • c語言:操作符詳解(上)

    c語言:操作符詳解(上)

    算術(shù)操作符: + 、- 、* 、/ 、% 移位操作符: 位操作符: | ^ 賦值操作符: = 、+= 、 -= 、 *= 、 /= 、%= 、= 、= 、= 、|= 、^= 單目操作符: !、++、–、、*、+、-、~ 、sizeof、(類型) 關(guān)系操作符: 、= 、 、= 、 == 、 != 邏輯操作符: 、|| 條件操作符:? : 逗號(hào)表達(dá)式: , 下標(biāo)引用:

    2024年03月16日
    瀏覽(21)
  • 【 c 語言 】賦值操作符詳解

    【 c 語言 】賦值操作符詳解

    ??個(gè)人主頁:豌豆射手^ ??歡迎 ??點(diǎn)贊?評(píng)論?收藏 ??收錄專欄:C語言 ??希望本文對(duì)您有所裨益,如有不足之處,歡迎在評(píng)論區(qū)提出指正,讓我們共同學(xué)習(xí)、交流進(jìn)步! 引言: 在C語言編程中,賦值操作符是我們?nèi)粘>幊讨胁豢苫蛉钡囊徊糠?。它不僅是初始化變量、修改

    2024年04月09日
    瀏覽(65)
  • 愛上C語言:操作符詳解(上)

    愛上C語言:操作符詳解(上)

    ?? 作者:阿輝不一般 ?? 你說呢: 生活本來沉悶,但跑起來就有風(fēng) ?? 專欄:愛上C語言 ?? 作圖工具:draw.io ( 免費(fèi)開源的作圖網(wǎng)站) 如果覺得文章對(duì)你有幫助的話,還請(qǐng)點(diǎn)贊,關(guān)注,收藏支持博主,如有不足還請(qǐng)指點(diǎn),博主及時(shí)改正,感謝大家支持?。?! 大家好啊??!今

    2024年02月04日
    瀏覽(17)
  • 初階C語言-操作符詳解(下)

    初階C語言-操作符詳解(下)

    ?? “等春風(fēng)得意,等時(shí)間嘉許!” 接下來,我們把操作符沒學(xué)完的繼續(xù)學(xué)完! ??我們來看一下下面這段代碼: 關(guān)系操作符: = = !=(用于測(cè)試不相等) ==(用于測(cè)試相等) 注:不要把 == 和 = 混起來? ? == 用于測(cè)試相等, = 用于賦值。 ??邏輯操作符: (邏輯與操作符)

    2024年02月13日
    瀏覽(21)
  • 初階C語言——詳解操作符(1)

    初階C語言——詳解操作符(1)

    Hello,我們又見面了,最近不知道大家是否在持續(xù)輸出代碼呢?代碼能力是否提高了呢?今天讓我們來一起學(xué)習(xí)操作符,操作符在我們學(xué)習(xí)語言中很重要,我們要知道每個(gè)操作符的作用和用法,下面開始我們的學(xué)習(xí)。 操作符分類: 算術(shù)操作符 移位操作符 位操作符 賦值操作符

    2024年02月12日
    瀏覽(22)
  • C語言最全操作符詳解??

    C語言最全操作符詳解??

    C語言的一系列操作符中,其中一組叫雙目操作符,也叫算數(shù)操作符。分別是:+,–,*,/,%。 ①+和– +和–的用途與數(shù)學(xué)中基本一致,用來做加法和減法。例如: 我們可以發(fā)現(xiàn),他們之所以叫雙目操作符,是因?yàn)樗麄兊淖筮吅陀疫呉还灿袃蓚€(gè)操作數(shù)。 ②* *運(yùn)算符也與數(shù)學(xué)

    2024年02月21日
    瀏覽(15)
  • 初階C語言-操作符詳解(上)

    初階C語言-操作符詳解(上)

    “不飛則已,一飛沖天;不鳴則已,一鳴驚人?!?今天,我們一起來學(xué)習(xí)一下操作符的相關(guān)知識(shí)。 算術(shù)操作符 + - * / % 移位操作符 位操作符 | ^ 賦值操作符 = += -= *= /=... 單目操作符 ! sizeof ++ -- ... 關(guān)系操作符 = = == != 邏輯操作符 || 條件操作符 ? : 逗號(hào)表達(dá)式 , 下標(biāo)引用、函數(shù)

    2024年02月13日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包