?hi!我是漁火。今天開(kāi)始跟我學(xué),從零開(kāi)始學(xué)C語(yǔ)言(五)
今天我們來(lái)學(xué)習(xí)C語(yǔ)言中的運(yùn)算符和表達(dá)符。C語(yǔ)言中賦值運(yùn)算有”=“、”+=“、”-=“、”/=“和”%=“等。用賦值運(yùn)算符將運(yùn)算對(duì)象連接而成的表達(dá)式稱(chēng)為賦值表達(dá)式。
最簡(jiǎn)單的賦值運(yùn)算符就是”=“,它的作用就是將一個(gè)數(shù)值賦給一個(gè)變量,也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量,接下來(lái)看一個(gè)給變量賦值的例子:
int a,b,c=3;? 分析:定義a,b,c為整型變量,但只對(duì)c進(jìn)行了賦值操作,c的值為3。
如果要對(duì)幾個(gè)變量賦予同一個(gè)初值,我們應(yīng)該這么寫(xiě):
int a=3,b=3,c=3;? 分析:表示a,b,c三個(gè)初值都是3。
在簡(jiǎn)單賦值運(yùn)算符加上算術(shù)運(yùn)算符就構(gòu)成復(fù)合賦值運(yùn)算符。
在 C語(yǔ)言中,賦值語(yǔ)句屬于表達(dá)語(yǔ)句。賦值表達(dá)式是由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子所組成。它的一般形式為:變量=表達(dá)式。由于賦值表達(dá)式的作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量,因此賦值表達(dá)式具有計(jì)算和賦值的雙重功能。
注意:賦值運(yùn)算符的左側(cè)必須是一個(gè)變量。
接下來(lái)我們看幾個(gè)賦值表達(dá)式:
v=4.0*PI*r*r*r/3.0; a=8+(y=9); c=(m+2)+(n+6);? 我們來(lái)了解下賦值表達(dá)式的執(zhí)行過(guò)程:1、計(jì)算賦值運(yùn)算符右側(cè)表達(dá)式的值。2、將所計(jì)算的值給賦值運(yùn)算符左側(cè)的變量。區(qū)分賦值表達(dá)式和賦值語(yǔ)句的方法是:賦值表達(dá)式的末尾沒(méi)有分號(hào),而賦值語(yǔ)句的末尾必須有分號(hào),在一個(gè)表達(dá)式中可以包含一個(gè)或多個(gè)賦值表達(dá)式,但絕不能包含賦值語(yǔ)句。
小白提示:
(1)如果”=“左右兩邊類(lèi)型不同,系統(tǒng)會(huì)按照賦值類(lèi)型轉(zhuǎn)換的原則將右邊的類(lèi)型轉(zhuǎn)換成左邊的類(lèi)型。
(2)賦值表達(dá)式的右邊也可以是一個(gè)賦值表達(dá)式。
C語(yǔ)言里的基本算術(shù)運(yùn)算符包括加、減、乘、除和求余等運(yùn)算,其中加、減、乘、除和求余運(yùn)算均為雙目運(yùn)算符,所謂雙目運(yùn)算符是指運(yùn)算時(shí)需要兩個(gè)操作數(shù)。
注意:求余運(yùn)算要求參加運(yùn)算的兩個(gè)運(yùn)算對(duì)象都必須是整型,其結(jié)果也是整型。求余運(yùn)算結(jié)果的符號(hào)與第一個(gè)操作數(shù)符號(hào)相同。
C語(yǔ)言里有兩個(gè)特殊運(yùn)算符”++“和”--“。
(1)++自增運(yùn)算符,為單目運(yùn)算符,其功能是變量的值自加1。自增運(yùn)算符有兩種使用形式:
前綴方式:用于變量前面,它是”先計(jì)算,后使用“,即先將x的值自加1,然后將x的值賦給變量a。
后綴方式:用于變量后面,它是”先使用,后計(jì)算“,即先將x的值賦給變量a,然后再將x的值自加1。
(2)--自減運(yùn)算符,為單目運(yùn)算符,其功能是使變量的值減一,使用方法和自增運(yùn)算符相似。
注意:自增和自減運(yùn)算符的操作對(duì)象只能是一個(gè)簡(jiǎn)單變量,不能是常量或表達(dá)式。
C語(yǔ)言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性,單目運(yùn)算符是右結(jié)合的,雙目運(yùn)算符是左結(jié)合的。算術(shù)運(yùn)算符的優(yōu)先級(jí)為:”++、--、-”>“*、/、%”>“、-”,即單目運(yùn)算符的優(yōu)先級(jí)高于雙目運(yùn)算符,雙目運(yùn)算符中*,/,%的優(yōu)先級(jí)高于+、-。在優(yōu)先級(jí)的系統(tǒng)的情況下,按規(guī)定的“結(jié)合性”處理。
算術(shù)表達(dá)式是由運(yùn)算符、運(yùn)算對(duì)象和括號(hào)鏈接起來(lái)的式子,運(yùn)算對(duì)象可以是常量、變量和函數(shù)等。通常數(shù)學(xué)表達(dá)式均可寫(xiě)成C語(yǔ)言的算術(shù)表達(dá)式,但也有些數(shù)學(xué)表達(dá)式無(wú)法直接用C語(yǔ)言的算術(shù)表達(dá)式寫(xiě)出,此時(shí)需要調(diào)用C語(yǔ)言的數(shù)學(xué)函數(shù)來(lái)實(shí)現(xiàn)。表達(dá)式計(jì)算后會(huì)得到一個(gè)確定的值和類(lèi)型。
算術(shù)表達(dá)式使用注意:
1、表達(dá)式中的乘號(hào)不能省略,且表達(dá)式中的所有字符均應(yīng)寫(xiě)在同一行上。
2、在表達(dá)式中還可以使用多層圓括號(hào),但是要注意括號(hào)的配對(duì)。
接下來(lái)我們來(lái)看一道題目:輸入一個(gè)3位的正整數(shù),輸出其反序數(shù)(如123的反序數(shù)為321)
代碼如下:
#include?//2023.1.29 漁火 Linux迷 www.linuxmi.com int main() { int num,a,b,c; num=789; printf("輸入的3位數(shù)為:%d ",num); a=num/100; b=(num-a*100)/10; c=num%10; printf("反序數(shù)是:%d%d%d ",c,b,a); //2023.1.29 漁火 Linux迷 www.linuxmi.com return 0; }
運(yùn)行結(jié)果如下:
?
C語(yǔ)言中逗號(hào)“,”,也是一種運(yùn)算符,稱(chēng)為逗號(hào)運(yùn)算符,其功能是把多個(gè)表達(dá)式連接起來(lái)組成一個(gè)表達(dá)式,稱(chēng)為逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般形式位:表達(dá)式1,表達(dá)式2,···,表達(dá)式n。
(1)逗號(hào)表達(dá)式的執(zhí)行順序是:從左到右以此計(jì)算每個(gè)表達(dá)式的值,并把最后一個(gè)表達(dá)式的值作為整個(gè)逗號(hào)表達(dá)式的值。
(2)逗號(hào)運(yùn)算符是雙目運(yùn)算符,其優(yōu)先級(jí)最低,是左結(jié)合。
(3)并非所有出現(xiàn)逗號(hào)的地方都為逗號(hào)表達(dá)式。
接下來(lái)我們來(lái)看一個(gè)逗號(hào)表達(dá)式的應(yīng)用:
#include? 運(yùn)行結(jié)果如下://2023.1.29 漁火 Linux迷 www.linuxmi.com int main() { int x,y=8; float n=4; x=(y=y+2,y/n); printf("x=%d ",x); //2023.1.29 漁火 Linux迷 www.linuxmi.com return 0; }
?
運(yùn)算符sizeof用于計(jì)算數(shù)據(jù)類(lèi)型所占的字節(jié)數(shù),它是一個(gè)單目運(yùn)算符,優(yōu)先級(jí)高于雙目運(yùn)算符,其格式如下:
(1)sizeof或sizeof表達(dá)式
(2)sizeif(數(shù)據(jù)類(lèi)型名)
不同數(shù)據(jù)類(lèi)型字?jǐn)?shù)例子:
#include? 運(yùn)行結(jié)果如下://2023.1.29 漁火 Linux迷 www.linuxmi.com int main() { printf("char類(lèi)型占%d字節(jié) ",sizeof(char)); printf("short int類(lèi)型%d字節(jié) ",sizeof(short int)); printf("int類(lèi)型占%d字節(jié) ",sizeof(int)); printf("float類(lèi)型占%d字節(jié) ",sizeof(float)); printf("double類(lèi)型占%d字節(jié) ",sizeof(double)); //2023.1.29 漁火 Linux迷 www.linuxmi.com return 0; }
?
求字節(jié)數(shù)運(yùn)算例子:
#include? 運(yùn)行結(jié)果如下://2023.1.29 漁火 Linux迷 www.linuxmi.com int main() { int x,y; x=sizeof(6+8.0); y=sizeof 6+8.0; printf("%d,%d,%d ",x,y,sizeof("china")); //2023.1.29 漁火 Linux迷 www.linuxmi.com return 0; }
?
C語(yǔ)言規(guī)定,各種不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)在一起運(yùn)算時(shí),不同類(lèi)型的數(shù)據(jù)要先轉(zhuǎn)換成相同類(lèi)型的數(shù)據(jù)才能進(jìn)行轉(zhuǎn)換。數(shù)據(jù)類(lèi)型的轉(zhuǎn)換可以分為自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。
我們來(lái)看一個(gè)強(qiáng)制轉(zhuǎn)換的例子:
#include? 運(yùn)行結(jié)果如下://2023.1.29 漁火 Linux迷 www.linuxmi.com int main() { int x=7,y=8; float u; u=(float)(x+y)/2; printf("u=%f ",u); //2023.1.29 漁火 Linux迷 www.linuxmi.com return 0; }
?
注意:(1)需強(qiáng)制類(lèi)型轉(zhuǎn)換中的表達(dá)式一定要括起來(lái),否則只對(duì)緊隨括號(hào)后的量進(jìn)行類(lèi)型轉(zhuǎn)換。(2)強(qiáng)制類(lèi)型轉(zhuǎn)換是一種不安全的轉(zhuǎn)換,如果是從高級(jí)類(lèi)型的轉(zhuǎn)換成低級(jí)類(lèi)型,則會(huì)損失數(shù)據(jù)的精度。(3)強(qiáng)制類(lèi)型轉(zhuǎn)換并不該表表達(dá)式中變量的類(lèi)型和值。
審核編輯:湯梓紅
?
?
評(píng)論
查看更多