成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

操作符詳解【C語(yǔ)言】-創(chuàng)新互聯(lián)

這里寫(xiě)目錄標(biāo)題
    • 一.算數(shù)操作符
    • 二.移位操作符
      • 1.左移操作符<<
      • 2.右移操作符>>
    • 三.位操作符
    • 四.賦值操作符
    • 五.單目操作符
    • 六.用于判斷條件的操作符
    • 七.多目操作符
      • 1.
    • 🚀 八.下標(biāo)引用,結(jié)構(gòu)體成員訪問(wèn)
      • 1.下標(biāo)引用操作符:arr[i],表示訪問(wèn)arr數(shù)組中下標(biāo)為i的元素。
      • 2.結(jié)構(gòu)體成員訪問(wèn)
    • 🏰九.表達(dá)式求值
      • 1.整形提升
        • 1.1整形提升的意義
        • 1.2整型提升的方式
      • 2.算術(shù)轉(zhuǎn)換
    • 十.操作符的屬性
    • 📕總結(jié)

創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,先為臺(tái)江等服務(wù)建站,臺(tái)江等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為臺(tái)江企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。一.算數(shù)操作符

+ - * / % ,這幾個(gè)就叫做算數(shù)操作符

但在使用時(shí)要注意一下幾個(gè)點(diǎn):
1.%操作符只能作用在兩個(gè)整數(shù)上,返回的是整除之后的余數(shù)。
在這里插入圖片描述2.除了%,其他操作符既可作用于整數(shù),也可作用于浮點(diǎn)數(shù)。

二.移位操作符 1.左移操作符<<

將操作數(shù)的二進(jìn)制補(bǔ)碼向左移動(dòng)一位,左邊拋棄,右邊補(bǔ)0
5左移一位

2.右移操作符>>

將操作數(shù)的二進(jìn)制補(bǔ)碼向右移動(dòng)一位
在這里又分兩種右移方式:
①邏輯移位:左邊補(bǔ)0,右邊拋棄
②算數(shù)移位:左邊補(bǔ)原符號(hào)位,右邊拋棄
🐻在C語(yǔ)言中右移操作都是算數(shù)右移,但可以將一個(gè)數(shù)強(qiáng)制類(lèi)型轉(zhuǎn)換成無(wú)符號(hào)數(shù)來(lái)實(shí)現(xiàn)邏輯右移

★對(duì)于移位操作符,不要移動(dòng)負(fù)數(shù)位,不然編譯器可能會(huì)報(bào)錯(cuò)

int a =10;
a>>-1;//可能會(huì)報(bào)錯(cuò)
三.位操作符

& //按位與
| //按位或
^ //按位異或
注:他們的操作數(shù)必須是整數(shù)。

這些操作符是對(duì)兩個(gè)操作數(shù)的補(bǔ)碼進(jìn)行操作的。

四.賦值操作符

+=
-=
*=
/=
<<= >>=
&=
|=
^=

用法舉例:

int a =0;
a+=1;//等價(jià)于a=a+1
a>>=1;//等價(jià)于a右移一位
a*=3;//等價(jià)于a=a*3

這些賦值操作符簡(jiǎn)化了我們的代碼,并提高了代碼的可讀性,十分好用。

五.單目操作符

顧名思義,單目操作符即為操作數(shù)只有一個(gè)的操作符
常用單目操作符有:

! 邏輯反操作
- 負(fù)值
+ 正值
& 取地址
sizeof 求操作數(shù)的類(lèi)型長(zhǎng)度(以字節(jié)為單位)
~ 對(duì)一個(gè)數(shù)的二進(jìn)制按位取反
– 前置、后置–
++ 前置、后置++
* 間接訪問(wèn)操作符(解引用操作符)
(類(lèi)型) 強(qiáng)制類(lèi)型轉(zhuǎn)換

其中有意思的是前置++和后置++(和- -),前置++是先加再使用,后置則是先使用再加。
可以這么理解:
前置++返回的是加1之后的操作數(shù),后置++返回的則是加1之前的操作數(shù)

int a =5;
printf("%d",a++);//輸出的是a加1之前的值,即打印5
printf("%d",a);由于上一行代碼打印之后a加了1,所以這里打印a的值為6
printf("%d",++a);輸出的是a加1之后的值,即打印7

其中sizeof是計(jì)算操作數(shù)的類(lèi)型長(zhǎng)度的,單位是字節(jié),但sizeof(數(shù)組名)又有一點(diǎn)特殊,具體的可以看看我寫(xiě)的另一篇文章詳解C語(yǔ)言數(shù)組。

六.用于判斷條件的操作符

>
<
>=
<=
== 判斷是否相等
!= 判斷是否不相等
&& 邏輯與:兩個(gè)條件都為真則返回1,否則返回0
|| 邏輯或:至少有一個(gè)條件為真則返回1,否則返回0

&&:從左往右判斷,只要有一個(gè)0則整體返回0,后面的不看了
||:從左往右判斷,只要有一個(gè)返回1則整體返回1,后面的不看了

int a=5;
int b =10;
int c= 15;
int i =0;
i = ++a||++b||c++;
printf("%d %d %d",a,b,c);//結(jié)果為6,10,15

打印的結(jié)果為6,10,15,原因是++a返回的值為6,為真,則這個(gè)||邏輯或就不會(huì)再繼續(xù)往下進(jìn)行了,因?yàn)榻Y(jié)果已經(jīng)確定了,這樣可以節(jié)省計(jì)算機(jī)的工作量。

七.多目操作符 1.

exp1?exp2:exp3

這個(gè)三目操作符先判斷exp1的結(jié)果是否為真,若為真則運(yùn)行exp2代碼,若為假則運(yùn)行exp3。

int a=3;
int b =2;
int max=a>b?a:b//把a(bǔ),b中較大的值放入max中

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

逗號(hào)表達(dá)式就是用逗號(hào)隔開(kāi)的若干表達(dá)式,從左往右依次執(zhí)行,逗號(hào)表達(dá)式的結(jié)果為最后一個(gè)表達(dá)式的果。
exp1,exp2,exp3……expN

int a =0;
int b =2;
int c = a+=2,b+=3,a>b;
printf("%d %d %d",a,b,c);//打印結(jié)果為2,5,0
🚀 八.下標(biāo)引用,結(jié)構(gòu)體成員訪問(wèn) 1.下標(biāo)引用操作符:arr[i],表示訪問(wèn)arr數(shù)組中下標(biāo)為i的元素。

[ ]是操作符,arr和i是它的兩個(gè)操作數(shù),arr[i]等價(jià)于*(arr+i)

2.結(jié)構(gòu)體成員訪問(wèn)

①結(jié)構(gòu)體名.成員名
②結(jié)構(gòu)體指針->成員名
在這里插入圖片描述

🏰九.表達(dá)式求值 1.整形提升

C的整型算術(shù)運(yùn)算總是至少以缺省整型類(lèi)型的精度來(lái)進(jìn)行的。翻譯一下就是C語(yǔ)言中的算數(shù)運(yùn)算總是至少以整型類(lèi)型的精度來(lái)進(jìn)行的,為了獲得這個(gè)精度,表達(dá)式中的字符和短整型類(lèi)型操作數(shù)在使用之前會(huì)被轉(zhuǎn)換成普通整型,這種轉(zhuǎn)換就叫做整型提升。

1.1整形提升的意義

表達(dá)式的整型運(yùn)算要在CPU的相應(yīng)運(yùn)算器件內(nèi)執(zhí)行,CPU內(nèi)整型運(yùn)算器(ALU)的操作數(shù)的字節(jié)長(zhǎng)度
一般就是int的字節(jié)長(zhǎng)度,同時(shí)也是CPU的通用寄存器的長(zhǎng)度。
因此,即使兩個(gè)char類(lèi)型的相加,在CPU執(zhí)行時(shí)實(shí)際上也要先轉(zhuǎn)換為CPU內(nèi)整型操作數(shù)的標(biāo)準(zhǔn)長(zhǎng)
度。
通用CPU(general-purpose CPU)是難以直接實(shí)現(xiàn)兩個(gè)8比特字節(jié)直接相加運(yùn)算(雖然機(jī)器指令
中可能有這種字節(jié)相加指令)。所以,表達(dá)式中各種長(zhǎng)度可能小于int長(zhǎng)度的整型值,都必須先轉(zhuǎn)
換為int或unsigned int,然后才能送入CPU去執(zhí)行運(yùn)算。

1.2整型提升的方式

整型提升是按照變量的數(shù)據(jù)類(lèi)型的符號(hào)位來(lái)提升的

用例子來(lái)說(shuō)明:

char a = 6;
char b = a+1;

在這里插入圖片描述
這里a的符號(hào)位是0,所以整型提升時(shí)左邊補(bǔ)0。
🐒注意,只要參與了表達(dá)式運(yùn)算,char 類(lèi)型的a就會(huì)發(fā)生整型提升

char a =0;
printf("%u",sizeof(+a))//輸出的結(jié)果為4

在上述代碼中,+a是一個(gè)表達(dá)式,這里發(fā)生了整形提升,一個(gè)字節(jié)的char類(lèi)型的a被提升為了4個(gè)字節(jié),所以這里打印的結(jié)果為4。

講到這里,還是再細(xì)說(shuō)一下sizeof這個(gè)操作符

sizeof只是計(jì)算操作數(shù)的所占空間大小,單位是字節(jié),如果sizeof后面是一個(gè)賦值表達(dá)式,那么這個(gè)表達(dá)式也并不會(huì)真正去計(jì)算,它只會(huì)返回這個(gè)表達(dá)式返回的變量所占的空間大小。
舉個(gè)栗子:

int a =2;
int c = sizeof(a=a+1);//這里a并不會(huì)真的去加1
printf("%d %d",a,c);//打印的結(jié)果為2 4

在上述代碼中,sizeof只計(jì)算a的大小,不去管這個(gè)賦值表達(dá)式算出的結(jié)果,所以a的值仍為2。
而在sizeof(+a)這行代碼中,由于+a是一個(gè)表達(dá)式,所以a會(huì)整型提升,這個(gè)表達(dá)式的所占空間為4個(gè)字節(jié),所以sizeof(+a)得到的結(jié)果為4。

2.算術(shù)轉(zhuǎn)換

如果某個(gè)操作符的各個(gè)操作數(shù)屬于不同的類(lèi)型,那么要先將一個(gè)操作數(shù)轉(zhuǎn)換為另一個(gè)操作數(shù)的類(lèi)型,才能繼續(xù)進(jìn)行操作。

longdouble
double
float
unsignedlongint longint
unsignedint
int

如果某個(gè)操作數(shù)在上面列表中的排名較低,那這個(gè)操作數(shù)要先轉(zhuǎn)換為另一個(gè)操作數(shù)的類(lèi)型,之后才能進(jìn)行運(yùn)算。

十.操作符的屬性

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

📕總結(jié)
  • 1.在進(jìn)行運(yùn)算操作時(shí)(移位操作,賦值操作等),由于內(nèi)存中存儲(chǔ)的是變量的補(bǔ)碼,所以實(shí)際是在對(duì)補(bǔ)碼進(jìn)行操作(整型提升也是對(duì)補(bǔ)碼提升)。
  • 2.無(wú)符號(hào)數(shù)無(wú)符號(hào)位,如果是要移位操作等,補(bǔ)0。

在這里插入圖片描述

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文名稱(chēng):操作符詳解【C語(yǔ)言】-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article4/hgsoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣用戶(hù)體驗(yàn)、微信小程序網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
陆川县| 江口县| 集贤县| 怀化市| 华池县| 鄂州市| 白朗县| 怀宁县| 慈利县| 蒲城县| 敖汉旗| 衡山县| 安多县| 永善县| 西盟| 横山县| 迁西县| 湘潭市| 易门县| 华坪县| 虞城县| 吉林市| 图片| 新宾| 宣威市| 通河县| 星座| 沅江市| 乐清市| 措勤县| 淮北市| 崇文区| 灵川县| 呼和浩特市| 兴宁市| 正蓝旗| 江油市| 鞍山市| 义马市| 若尔盖县| 安庆市|