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

C語(yǔ)言第十二課---------操作符的介紹與使用(下)

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

作者前言

??? ? ? ? ??????????????????????

? ??? ? ? ?作者介紹:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????

? ? ? ??? ??????????????? ? ? ? ? ? ? ??

? ? ? ? ? ??作者id老秦包你會(huì),? ? ? ? ???

簡(jiǎn)單介紹:??????????????????????????????

? ? ? ? ? ? ?喜歡學(xué)習(xí)C語(yǔ)言和python等編程語(yǔ)言,是一位愛(ài)分享的博主,有興趣的小可愛(ài)可以來(lái)互討? ? ? ? ?????????????????

? ? ? ? ? ? ? ? ???個(gè)人主頁(yè)::小小頁(yè)面??

? ? ? ? ? ? ? ? ? ??gitee頁(yè)面:秦大大??

???????????????????????????????????
? ? ? ? ??? 一個(gè)愛(ài)分享的小博主 歡迎小可愛(ài)們前來(lái)借鑒??
_______________________________________________________

______________________________________________________________________

目錄

????????條件操作符

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

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

——————————————————————————————————————

插播小知識(shí)

1.%u?十進(jìn)制無(wú)符號(hào)整數(shù)

%d把對(duì)應(yīng)的整數(shù)按有符號(hào)十進(jìn)制輸出,%u把對(duì)應(yīng)的整數(shù)按無(wú)符號(hào)十進(jìn)制輸出,比如printf("%d,%u\n",-123,-123);,輸出則是-123,4294967173——因?yàn)?123的補(bǔ)碼是11111111111111111111111110000101,在%u控制下把它當(dāng)正數(shù)輸出了。

?條件操作符(三目操作符)

exp1 ? exp2 : exp3
exp1為真的話返回exp2,否則返回exp3
#include <stdio.h>
int main()
{
	int a = 10;
	int b = 2;
	int m = 0;
	/*if (a > b)
		m = a;
	else
		m = b;*/
	m = (a > b ? a : b);
	printf("%d", m);
	return 0;
}

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

exp1, exp2, exp3, …expN

逗號(hào)表達(dá)式,就是用逗號(hào)隔開(kāi)的多個(gè)表達(dá)式。
逗號(hào)表達(dá)式,從左向右依次執(zhí)行。整個(gè)表達(dá)式的結(jié)果是最后一個(gè)表達(dá)式的結(jié)果。
#include <stdio.h>
int main()
{
	int a = 1;
	int b = 2;
	int c = (a = 2 + b, b = a + b);
	printf("%d %d %d", a, b, c);
	return 0;
}

從左到右執(zhí)行下去,直到最后一個(gè)表達(dá)式

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

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

操作數(shù):一個(gè)數(shù)組名 + 一個(gè)索引值
#include <stdio.h>
int main()
{
	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
	printf("%d", arr[2]);
	return 0;
}

[]的操作數(shù)是arr 和2

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

#include <stdio.h>
int Add(int a, int b)
{
	return a + b;
}
int main()
{
	int a = 0;
	int b = 2;
	Add(a, b);//()函數(shù)調(diào)用操作符

	return 0;
}

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

. 結(jié)構(gòu)體 . 成員名
-> 結(jié)構(gòu)體指針 -> 成員名
#include <stdio.h>
struct book
{
	char name[20];
	int price;

};
int  main()
{
	struct book b = { "明解C語(yǔ)言", 55 };
	printf("%s\n", b.name);

	struct book* pb = &b;
	printf("%s\n", pb -> name);
	printf("%s\n", (*pb).name);

	return 0;
}

表達(dá)式求值

表達(dá)式求值的順序一部分是由操作符的優(yōu)先級(jí)和結(jié)合性決定。
同樣,有些表達(dá)式的操作數(shù)在求值的過(guò)程中可能需要轉(zhuǎn)換為其他類型。

隱式類型轉(zhuǎn)換

1.整形提升(運(yùn)用于小于一個(gè)int 大小的數(shù)值)

表達(dá)式中的字符和短整型操作數(shù)在使用之前被轉(zhuǎn)換為普通整型,這種轉(zhuǎn)換稱為 整型
提升 。
整型提升的意義 表達(dá)式中各種長(zhǎng)度可能小于 int 長(zhǎng)度的整型值,都必須先轉(zhuǎn) 換為 int unsigned int ,然后才能送入 CPU 去執(zhí)行運(yùn)算
如何進(jìn)行整體提升呢?
整形提升是按照變量的數(shù)據(jù)類型的符號(hào)位來(lái)提升的
在int中有signed和unsigend, 所有char也分有符號(hào)和無(wú)符號(hào),因?yàn)镃語(yǔ)言沒(méi)有規(guī)定,所以取決于編譯器
// 負(fù)數(shù)的整形提升
char c1 = - 1 ;
變量 c1 的二進(jìn)制位 ( 補(bǔ)碼 ) 中只有 8 個(gè)比特位:
1111111
因?yàn)? char 為有符號(hào)的 char
所以整形提升的時(shí)候,高位補(bǔ)充符號(hào)位,即為 1
提升之后的結(jié)果是:
11111111111111111111111111111111
// 正數(shù)的整形提升
char c2 = 1 ;
變量 c2 的二進(jìn)制位 ( 補(bǔ)碼 ) 中只有 8 個(gè)比特位:
00000001
因?yàn)? char 為有符號(hào)的 char
所以整形提升的時(shí)候,高位補(bǔ)充符號(hào)位,即為 0
提升之后的結(jié)果是:
00000000000000000000000000000001
// 無(wú)符號(hào)整形提升,高位補(bǔ) 0
注意一下,對(duì)char進(jìn)行提升要先寫(xiě)出8個(gè)bit來(lái)確定符號(hào)位,然后根據(jù)符號(hào)位進(jìn)行整體提升,計(jì)算機(jī)就是這樣計(jì)算大小小于int的數(shù)值
int main()
{
 char a = 0xb6;
 short b = 0xb600;
 int c = 0xb6000000;
 if(a==0xb6)
 printf("a");
 if(b==0xb600)
 printf("b");
 if(c==0xb6000000)
 printf("c");
 return 0;
}
a,b 要進(jìn)行整形提升 , 但是 c 不需要整形提升
a,b 整形提升之后 , 變成了負(fù)數(shù) , 所以表達(dá)式 a==0xb6 , b==0xb600 的結(jié)果是假 , 但是 c 不發(fā)生整形提升 , 則表 達(dá)式 c==0xb6000000 的結(jié)果是真 .

我們只需要知道小于int大小的數(shù)值要整形提升

#include <stdio.h>
int main()
{
	char a = 1;//    00000000000000000000000000000001  補(bǔ)碼   ---a存儲(chǔ)的只有00000001
	char b = 30;//   00000000000000000000000000011110 補(bǔ)碼	----b存儲(chǔ)的只有00011110
	char c = a + b;// 參與了運(yùn)算
					//a整形提升為 00000000000000000000000000000001
					//b整形提升為 00000000000000000000000000011110
					//	結(jié)果	  00000000000000000000000000011111
					//00011111  -char c存儲(chǔ)的8個(gè)bit
					//c整形提升	  00000000000000000000000000011111   --->補(bǔ)碼
					//最終原碼為  00000000000000000000000000011111 
	printf("%d", c);
	return 0;
}

所以我們可以理解為當(dāng)字符或者其他小于int長(zhǎng)度的,在參與運(yùn)算或者判斷又或者配合某些操作符就會(huì)發(fā)生整形提升,提升到4個(gè)字節(jié),否則原來(lái)是多少字節(jié)就是多少字節(jié)

2.算術(shù)轉(zhuǎn)換(用于大小大于或者等于int 大小的數(shù)組)

如果某個(gè)操作符的各個(gè)操作數(shù)屬于不同的類型,那么除非其中一個(gè)操作數(shù)的轉(zhuǎn)換為另一個(gè)操作數(shù)的類 型,否則操作就無(wú)法進(jìn)行
C語(yǔ)言第十二課---------操作符的介紹與使用(下),開(kāi)發(fā)語(yǔ)言,c語(yǔ)言

?

如果某個(gè)操作數(shù)的類型在上面這個(gè)列表中排名較低,那么首先要轉(zhuǎn)換為另外一個(gè)操作數(shù)的類型后執(zhí)行運(yùn)算。

操作符的屬性

復(fù)雜表達(dá)式的求值有三個(gè)影響的因素。
1. 操作符的優(yōu)先級(jí)
2. 操作符的結(jié)合性
3. 是否控制求值順序。
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	//優(yōu)先級(jí)
	b = 9 + 5 * 6;
	//結(jié)合性
	b = 6 + 5 + 3;
	return 0;
}

在相鄰操作符不一樣的時(shí)候,先考慮優(yōu)先級(jí)

相鄰操作符相同時(shí),考慮結(jié)合性

結(jié)合性就是計(jì)算方向

#include <stdio.h>
int main()
{
 int i = 1;
 int ret = (++i) + (++i) + (++i);
 printf("%d\n", ret);
 printf("%d\n", i);
 return 0;
}

這個(gè)代碼在不同編譯器結(jié)果不一樣,所以這個(gè)代碼的寫(xiě)法不行,我們可以看看vs編譯器是怎樣運(yùn)行的,我們看看反匯編

C語(yǔ)言第十二課---------操作符的介紹與使用(下),開(kāi)發(fā)語(yǔ)言,c語(yǔ)言

mov :是把后面的值存放到前面去, 把1存放到dword ptr[i]

add:增加

eax、ecx、都是寄存器文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-630897.html

總結(jié) :我們寫(xiě)出的表達(dá)式如果不能通過(guò)操作符的屬性確定唯一的計(jì)算路徑,那這個(gè)表達(dá)式就是存在問(wèn)題 的。

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

本文來(lái)自互聯(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)文章

  • 學(xué)了那么長(zhǎng)時(shí)間的編程,C語(yǔ)言的各種操作符都搞不懂?點(diǎn)開(kāi)這里有詳細(xì)的介紹—>

    學(xué)了那么長(zhǎng)時(shí)間的編程,C語(yǔ)言的各種操作符都搞不懂?點(diǎn)開(kāi)這里有詳細(xì)的介紹—>

    目錄 前言 一、原碼、反碼、補(bǔ)碼的基礎(chǔ)概念 1.原碼 2.反碼 3.補(bǔ)碼 二、原碼、反碼、補(bǔ)碼的計(jì)算方法 1.原碼 2.反碼 3.補(bǔ)碼 三、算術(shù)操作符 四、移位操作符 1. 左移操作符 移位規(guī)則: 2. 右移操作符 移位規(guī)則: (1) 邏輯移位 (2) 算術(shù)移位 五、位操作符 1. 按位與運(yùn)算(AND)

    2024年02月10日
    瀏覽(22)
  • 【C語(yǔ)言初階】帶你輕松玩轉(zhuǎn)所有常用操作符(1) ——算數(shù)操作符,移位操作符,位操作符

    【C語(yǔ)言初階】帶你輕松玩轉(zhuǎn)所有常用操作符(1) ——算數(shù)操作符,移位操作符,位操作符

    君兮_的個(gè)人主頁(yè) 勤時(shí)當(dāng)勉勵(lì) 歲月不待人 C/C++ 游戲開(kāi)發(fā) Hello,這里是君兮_,最近要準(zhǔn)備期末復(fù)習(xí)了,可能更新的就不會(huì)那么頻繁了,下個(gè)星期恢復(fù)正常更新。 今天給大家?guī)?lái)的是操作符詳解,由于這部分的內(nèi)容比較多,可能會(huì)分成幾部分講,今天帶來(lái)的是第一部分的內(nèi)容,廢

    2024年02月11日
    瀏覽(32)
  • 斷言操作符介紹

    斷言操作符介紹

    目錄 1.延時(shí)操作符(##) 1.1 ##m 1.2 ##[m:n] 2.蘊(yùn)含操作符(|=,|-) 2.1 |=操作符 2.2 |-操作符? 3 重復(fù)操作符 ([*m][-m][=m]) 3.1 連續(xù)重復(fù)操作符([*m][*m:n]) 3.2 跟隨重復(fù)操作符([-m][-m:n]) 3.3 非連續(xù)重復(fù)操作符([=m]) 3.4 小結(jié) 4 SVA 4.1 與或非 4.2 動(dòng)態(tài)控制函數(shù) 4.3 SVA內(nèi)嵌函數(shù) 4.4 S

    2024年02月10日
    瀏覽(19)
  • 初始C語(yǔ)言——詳細(xì)講解操作符以及操作符的易錯(cuò)點(diǎn)

    初始C語(yǔ)言——詳細(xì)講解操作符以及操作符的易錯(cuò)點(diǎn)

    ?第一章?“C“滸傳——初識(shí)C語(yǔ)言(更適合初學(xué)者體質(zhì)哦?。??第二章?詳細(xì)認(rèn)識(shí)分支語(yǔ)句和循環(huán)語(yǔ)句以及他們的易錯(cuò)點(diǎn)? ?第三章?初階C語(yǔ)言——特別詳細(xì)地介紹函數(shù) ?第四章?初始C語(yǔ)言——詳細(xì)地講解數(shù)組的內(nèi)容以及易錯(cuò)點(diǎn) ?第五章? 初始C語(yǔ)言——詳細(xì)講解操作符以及操

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

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

    目錄 一、^ 是什么(^稱為異或) 二、^的規(guī)律(特點(diǎn)) 三、可利用^秒殺的常見(jià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語(yǔ)言】操作符

    【C語(yǔ)言】操作符

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

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

    <C語(yǔ)言> 操作符

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

    2024年02月12日
    瀏覽(20)
  • C語(yǔ)言初級(jí)<操作符>

    C語(yǔ)言初級(jí)<操作符>

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

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

    C語(yǔ)言中的操作符是用于操作變量、常量和表達(dá)式的符號(hào),以下是我學(xué)習(xí)操作符整理的相關(guān)知識(shí)點(diǎn)。 算數(shù)操作符: + - * / % + 、 - 、 * 、 / 可以用于操作整數(shù)和浮點(diǎn)數(shù) % 只能操作整數(shù),返回整除后的余數(shù) 左移操作符 右移操作符 這兩個(gè)只能用于整數(shù) 操作符 操作符 位操作符: | ^

    2024年02月01日
    瀏覽(15)
  • C語(yǔ)言---操作符詳解

    C語(yǔ)言---操作符詳解

    算術(shù)操作符 移位操作符 位操作符 賦值操作符 單目操作符 關(guān)系操作符 邏輯操作符 條件操作符 逗號(hào)操作符 下標(biāo)引用、函數(shù)調(diào)用和結(jié)構(gòu)成員。 移位操作符,移動(dòng)的是二進(jìn)制位。 警告:對(duì)于移位運(yùn)算符,不要移動(dòng)負(fù)位數(shù),這個(gè)是標(biāo)準(zhǔn)定義的。 3.1.1、原碼、反碼、補(bǔ)碼介紹 整數(shù)

    2024年02月07日
    瀏覽(52)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包