版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2.1數(shù)據(jù)類型
C語言的數(shù)據(jù)類型可以劃分為基本類型、構(gòu)造類型、指針類型及空類型四種。本章將介紹基本類型中的整型、字符型和實型這三種數(shù)據(jù)類型,其他數(shù)據(jù)類型將在后續(xù)章節(jié)中陸續(xù)介紹。
2.2常量與變量1、常量的概念:在程序運行過程中,其值不能被改變的量稱為常量。2、變量的概念:在程序運行過程中,其值可以被改變的量稱為變量,常用小寫字母、單詞或漢語拼音來表示。它們可以在規(guī)定數(shù)值允許的范圍里任意賦值,即其值可變。C語言的關(guān)鍵字不能用作變量名。3、變量的兩個要素(1)變量名。每個變量都必須有一個名字
——
變量名,變量命名遵循標(biāo)識符命名規(guī)則。(2)變量值。在程序運行過程中,變量值存儲在內(nèi)存中。在程序中,通過變量名來引用變量的值。4、變量的定義與初始化
在C語言中,要求對所有用到的變量,必須先定義、后使用;也可以在定義變量的同時進(jìn)行賦初值的操作,稱為變量初始化。
整型數(shù)據(jù)不帶小數(shù)的數(shù)據(jù)稱為整型數(shù)據(jù)。C語言提供了多種整數(shù)類型,用以適應(yīng)不同的情況的需要。常用的整數(shù)類型有四種基本類型:
整型—用修飾符
int,占2字節(jié),取值范圍32768~32767,即215~(2151);
長整型—用修飾符
longint或long,占4字節(jié),取值范圍2147483648~2147483647,即
231~(2311);
無符號整型—用修飾符
unsignedint或unsigned,占2字節(jié),取值范圍0~65535,即0~(2161);
無符號長整型—用修飾符
unsignedlongint或unsignedlong,占4字節(jié),取值范圍0~4294967295,即0~(2321)。
有符號的整型數(shù)在內(nèi)存中用二進(jìn)制表示,最高位為符號位,0表示為正,1表示為負(fù)。一個整型數(shù)對應(yīng)有原碼、反碼和補(bǔ)碼3種形式,正數(shù)的三種碼相同,負(fù)數(shù)的三種碼不同。整型數(shù)在內(nèi)存中自動用補(bǔ)碼保存。在C語言中,整型常數(shù)可用以下三種形式表示:(1)十進(jìn)制整數(shù)。如0,123,789等。(2)八進(jìn)制整數(shù)。以數(shù)字0開頭,表示與十進(jìn)制數(shù)的區(qū)別。如0457,表示八進(jìn)制數(shù)457,即(457)8,其值轉(zhuǎn)化成十進(jìn)制為4×82+5×81+7×80=303。對八進(jìn)制數(shù),每位僅能出現(xiàn)0~7共8個數(shù)。(3)十六進(jìn)制數(shù)。以0x作為開頭,表示與八進(jìn)制數(shù)的區(qū)別,對十六進(jìn)制數(shù),每位可出現(xiàn)0~9,A,B,C,D,E,F(xiàn)(字母大、小寫都可以)共16個數(shù)字。其中A表示10,B表示11,…,F(xiàn)表示15。如:0x49D,表示十六進(jìn)制數(shù)49D,即(49D)16,其值轉(zhuǎn)化成十進(jìn)制為4×162+9×161+13×160=1181。對于長整型常量同樣可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制3種形式表示。其表示形式是在整型常量之后加上字母“L”(大小寫均可,建議用大寫,因小寫容易與數(shù)字1混淆)。例如:123L,1245789L,0xf3aeL等都是長整型常量。
整型變量的賦值
當(dāng)整型變量在程序開頭進(jìn)行了定義后,對其賦值必須嚴(yán)格按照其允許值的范圍進(jìn)行。如定義inta,又給a賦值a=32769,則編譯程序時會提示出錯,因其值超出了該變量可以表示的范圍,顯然32769屬于longint型的范圍。
實型數(shù)據(jù)實型數(shù)據(jù)又分為三種
單精度—用修飾符float,占4字節(jié),取值范圍3.4×1038~3.4×1038;
雙精度—用修飾符double,占8字節(jié),取值范圍1.7×10308~1.7×10308;
長雙精度—用修飾符longdouble,占16字節(jié),取值范圍1.2×104932~1.2×104932
。
實型常量即實數(shù),在C語言中又稱浮點數(shù),其值有兩種表達(dá)形式:(1)十進(jìn)制小數(shù)形式。由數(shù)字和小數(shù)點組成(注意:必須有小數(shù)點),如3.14、.98、0.0、176.0等都是十進(jìn)制小數(shù)形式。(2)科學(xué)記數(shù)法:<尾數(shù)>E(e)<整型指數(shù)>。如123e3或123E3代表123×103。注意:e或E前必須有數(shù)字,其后必須為整數(shù)。如e3、3e2.5、E4都是錯的。對于上述兩種書寫形式,系統(tǒng)默認(rèn)為是雙精度實型常量,可表示16位有效數(shù)字。如果要表示單精度實型(可表示7位有效數(shù)字)和長雙精度實型常量,只要在上述書寫形式后分別加上后綴f(F)或l(L)即可。
字符型數(shù)據(jù)
字符型數(shù)據(jù)用修飾符char表示,占1字節(jié)。字符數(shù)據(jù)在內(nèi)存中存儲的是字符的ASCII碼
—
一個無符號整數(shù),其形式與整數(shù)的存儲形式一樣,所以C語言允許字符型數(shù)據(jù)與整型數(shù)據(jù)之間通用。一個字符型數(shù)據(jù),既可以字符形式輸出,也可以整數(shù)形式輸出。[例2-1]
字符變量的字符形式輸出和整數(shù)形式輸出。/*程序功能:用字符型和整數(shù)型輸出字符變量*/main(){charch1,ch2;ch1='a';ch2='b';printf("ch1=%c,ch2=%c\n",ch1,ch2);/*其中c表示以字符輸出*/printf("ch1=%d,ch2=%d\n",ch1,ch2);/*其中d表示以整數(shù)輸出*/}程序運行結(jié)果:ch1=a,ch2=bch1=97,ch2=98
允許對字符數(shù)據(jù)進(jìn)行算術(shù)運算,此時就是對它們的ASCII碼值進(jìn)行算術(shù)運算。[例2-2]
字符數(shù)據(jù)的算術(shù)運算。/*程序功能:字符數(shù)據(jù)的算術(shù)運算*/main(){charch1,ch2;ch1=‘a(chǎn)’;ch2='B';printf("ch1=%c,ch2=%c\n",ch132,ch2+32);/*字母的大小寫轉(zhuǎn)換*/printf("ch1+200=%d\n",ch1+200);printf("ch1+200=%c\n",ch1+200);/*297256=41,對應(yīng)的ASCII字符為)*/printf("ch1+256=%d\n",ch1+256);printf("ch1+256=%c\n",ch1+256);}程序運行結(jié)果:ch1=A,ch2=bch1+200=297ch1+200=)ch1+256=353
ch1+256=aC語言還允許使用一種特殊形式的字符常量,就是以反斜杠“\”開頭的轉(zhuǎn)義字符。例如:\n 表示換行;\t 光標(biāo)橫向跳動一段字符(如8個,相當(dāng)于按Tab鍵);\v 豎向跳格;\b 退格;\r 回車;\f 換頁;\\ 代表“\”符號;\’ 代表單引號;\ddd 表示ddd為一個用1到3位八進(jìn)制表示的ASCII碼所代表的字符;\xhh 表示hh為一個用1到2位十六進(jìn)制代表的字符。如\101代表字符A;\0或\000表示空字符,它代表的ASCII碼為0。字符串常量——用一對雙引號括起來的若干字符序列,稱為字符串常量。C語言規(guī)定:在存儲字符串常量時,由系統(tǒng)在字符串的末尾自動加一個‘\0’作為字符串的結(jié)束標(biāo)志,這樣在輸出或取該字符串時,便以此字符為終結(jié),不會向后再取其他字節(jié)的內(nèi)容。‘\0’字符實際上是一個ASCII碼為0的空字符,不能顯示,也不引起計算機(jī)發(fā)生任何具體動作,該空字符有時又稱為NULL字符。由此可知,字符‘a(chǎn)’與字符串“a”除了表現(xiàn)形式上有單引號和雙引號的區(qū)別外,在內(nèi)存上占用的字節(jié)也不同,前者只占1個字節(jié),后者占2個字節(jié)(a占1個字節(jié)、\0占1個字節(jié))。
2.3用typedef定義類型在定義數(shù)據(jù)類型時,除了可以直接使用C提供的標(biāo)準(zhǔn)類型名(如int、char、float、double、long等)外,還可以用typedef聲明新的類型名來代替已有的類型名。C語言提供用typedef來定義新的類型名,以代替已有的類型名,例如:typedefintINTEGER;指定用INTEGER代表int類型,這樣以下兩行等價:inti,j;INTEGERi,j;如果在一個程序中,一個整型變量用來計數(shù),可用:typedefintCOUNT;COUNTi,j;
即將變量i、j定義為COUNT類型,而COUNT等價于int,因此i、j是整型。在程序中將i、j定為COUNT類型,可以使人更一目了然地知道它們是用于計數(shù)的。2.4賦值語句在程序中常需要對一些變量預(yù)先設(shè)置初值。C語言允許在定義變量的同時使變量初始化。例如:inta=10; /*指定a為整型變量,初值為10*/floatf=3.1415; /*指定f為實型變量,初值為3.1415*/charc='a'; /*指定c為字符變量,初值為’a’*/也可以給被定義的變量的一部分賦初值。例如:inta,b,c=30;表示指定a、b、c為整型變量,只對c初始化,c的值為30。如果對幾個變量賦予初值10,則寫成:inta=10,b=10,c=10;表示a、b、c的初值都是10。注意:不能寫成“inta=b=c=10;”。
2.5運算符和表達(dá)式2.5.1運算符在C語言中,運算符按功能分主要有:算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符、賦值運算符、指針運算符、條件運算符、逗號運算符、強(qiáng)制轉(zhuǎn)換運算符等和其他特殊的運算符。按其所在表達(dá)式中參與運算的操作數(shù)目來分,則分為:單目運算符、雙目運算符和三目運算符。單目操作是指對一個操作數(shù)(或稱運算量)進(jìn)行操作。例如:a是對a進(jìn)行單目負(fù)操作。雙目操作是指對兩個操作數(shù)進(jìn)行操作,例如:a+b是對a和b進(jìn)行加法操作。1.算術(shù)運算符
用于各類數(shù)值運算。包括加(+)、減()、乘(*)、除(/)、求余(或稱模運算,%)、自加(++)、自減(
)共7種。2.關(guān)系運算符
用于比較運算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)6種。3.邏輯運算符
用于邏輯運算。包括與(&&)、或(||)、非(!)3種。4.位操作運算符
參與運算的量,按二進(jìn)制位進(jìn)行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)6種。5.賦值運算符
用于賦值運算,分為簡單賦值(=)、復(fù)合算術(shù)賦值(+=,=,*=,/=,%=)和復(fù)合位運算賦值(&=,|=,^=,>>=,<<=)三類共11種。6.條件運算符
這是一個三目運算符,用于條件求值(?:)。7.逗號運算符
用于把若干表達(dá)式組合成一個表達(dá)式(,)。8.指針運算符
用于取內(nèi)容(*)和取地址(&)2種運算。9.求字節(jié)數(shù)運算符
用于計算數(shù)據(jù)類型所占的字節(jié)數(shù)(sizeof)。
10.特殊運算符
有括號(
),下標(biāo)[],成員(→,.)等幾種。
2.5.2表達(dá)式1.表達(dá)式的概念
用運算符和括號將運算對象(常量、變量和函數(shù)等)連接起來的、符合C語言語法規(guī)則的式子,稱為表達(dá)式。單個常量、變量或函數(shù),可以看作是表達(dá)式的一種特例。將單個常量、變量或函數(shù)構(gòu)成的表達(dá)式稱為簡單表達(dá)式,其他表達(dá)式稱之為復(fù)雜表達(dá)式。按照運算符在表達(dá)式中的作用,表達(dá)式可分為:算術(shù)表達(dá)式
例如:
a+bc自增、自減表達(dá)式
例如:
i++
i關(guān)系表達(dá)式
例如:(a+b)>(ab)邏輯表達(dá)式
例如:
!aa&&b位運算表達(dá)式
例如:
a&ba<<3賦值表達(dá)式
例如:
a=3a*=2逗號表達(dá)式
例如:(a+b,ab)按運算符與運算對象的關(guān)系,則可以分成:單目表達(dá)式
例如:++aa!a雙目運算符
例如:
a+ba&&b三目運算符
例如:
max=(a>b)?a:b2.運算符的優(yōu)先級與結(jié)合性(1)C語言規(guī)定了運算符的優(yōu)先級和結(jié)合性。正如四則運算有先乘除后加減的運算優(yōu)先級規(guī)定一樣,C語言中運算符的優(yōu)先級也有規(guī)定。在表達(dá)式中,優(yōu)先級較高的先于優(yōu)先級較低的進(jìn)行運算。而在一個運算量兩側(cè)的運算符優(yōu)先級相同時,則按運算符的結(jié)合性所規(guī)定的結(jié)合方向處理。所謂結(jié)合性是指,當(dāng)一個操作數(shù)兩側(cè)的運算符具有相同的優(yōu)先級時,該操作數(shù)是先與左邊的運算符結(jié)合,還是先與右邊的運算符結(jié)合。自左至右的結(jié)合方向,稱為左結(jié)合性;反之,稱為右結(jié)合性。除單目運算符、賦值運算符和條件運算符是右結(jié)合性外,其他運算符都是左結(jié)合性。(2)表達(dá)式求值①
按運算符的優(yōu)先級高低次序執(zhí)行。如先乘除后加減。②
如果在一個操作數(shù)兩側(cè)的運算符的優(yōu)先級相同,則按C語言規(guī)定的結(jié)合方向(結(jié)合性)進(jìn)行。例如,算術(shù)運算符的結(jié)合方向是“自左至右”,即:在執(zhí)行“a–b+c”時,先執(zhí)行“ab”,然后再執(zhí)行加c的運算。2.5.3算術(shù)運算對數(shù)據(jù)進(jìn)行算術(shù)運算的運算符稱為算術(shù)運算符。C語言中基本算術(shù)運算符有如下幾種:1.雙目運算符(1)+進(jìn)行加法運算的加法運算符,如a+b、3+5等。(2)
進(jìn)行減法運算的減法運算符,如ab、46等。(3)*乘法運算符,如a*b、3*6等。(4)/除法運算符,如:a/b、5/3等。它與一般算術(shù)運算符規(guī)則有所不同,整數(shù)相除,其商僅取整數(shù)部分,如5/3=1;若兩實數(shù)相除,則商也為實數(shù),如5.0/10.0=0.5。(5)%求余數(shù)運算符,即該符號兩邊數(shù)相除后,取余數(shù),如5%3=2。取余運算時,兩端必須是整數(shù)(即int或char型數(shù)據(jù))。2.自加(++)、自減(
)運算
++或
稱為自加或自減運算符,它們?yōu)閱文窟\算符。自加自減運算符常用于循環(huán)語句中循環(huán)變量的計數(shù)。在賦值語句中,該運算符放在一整型變量前或后,操作方式不同,結(jié)果也不同。設(shè)i為一個整型變量,++i或
i表示在使用i之前,先使i的值加1或減1。而i++或i
表示先使用i,再使i的值加1或減1。例如“i=3;j=++i;”,此時j=4,i=4。又如“i=3;j=i++;”,此時j=3,i=4。自加自減運算符對變量單獨作用時,放在變量前與變量后效果相同,例如:inty,i=10;i++;y=i;與inty,i=10;++i;y=i;結(jié)果y均為11,i也都為11。自加與自減運算符的運算對象只能是變量,不能是常量或表達(dá)式,如++6,(x+a)++都是錯誤的。3.正負(fù)號運算符
當(dāng)+號或號放在一操作數(shù)前時,它們就成為單目的正負(fù)號運算符,其操作是取原來量的原值或負(fù)值。如a(相當(dāng)于a=0a),a+(+b)相當(dāng)于a=a+b。4.算術(shù)運算優(yōu)先級別
在一個算術(shù)表達(dá)式中,其優(yōu)先級別排序如下:(1)()優(yōu)先級最高,執(zhí)行時從左到右;(2)++,
,執(zhí)行時從右到左,它們?yōu)橥墸唬?)*,/,%,執(zhí)行時從左到右,它們?yōu)橥?;?)+,,執(zhí)行時從左到右,它們?yōu)橥?;?)=優(yōu)先級最低。2.5.4賦值運算
賦值運算符“=”表示將其右邊的數(shù)據(jù)賦值給左邊的變量;如a=5即將5賦值給變量a。當(dāng)要賦的數(shù)據(jù)類型不同于賦值號左邊的變量類型時,將自動轉(zhuǎn)換,變成與其左邊變量一致的類型,然后再賦值。
2.5.5關(guān)系運算C語言有6個關(guān)系運算符,即>、>=、<、<=、==、!=。用這些運算符所構(gòu)成的表達(dá)式,稱為關(guān)系表達(dá)式。當(dāng)這種關(guān)系成立時,關(guān)系表達(dá)式的值為1;當(dāng)這種關(guān)系不成立時,其值為0。[例2-3]
關(guān)系表達(dá)式的值。[解]main(){printf("%d%d%d\n",3<4,4<3,3<3);}程序運行結(jié)果:1002.5.6邏輯運算邏輯運算表示兩個運算量之間的邏輯關(guān)系。邏輯運算的表達(dá)式稱做邏輯表達(dá)式。各種邏輯運算所得到的值如下表所示。ab!a!ba&&ba||b非0非00011非0001010非01001001100運算優(yōu)先級:這三個運算符中,!優(yōu)先級最高,&&次之,||最低。!是單目運算符,&&和||是雙目運算符。它們與其他運算符的優(yōu)先級次序如下(左邊最高,右邊最低):!→算術(shù)運算符→關(guān)系運算符→&&→||→賦值運算符。
2.5.7其他運算1.逗號運算(,)及其表達(dá)式
C語言提供一種用逗號運算符“,”連接起來的式子,稱為逗號表達(dá)式。逗號運算符又稱順序求值運算符。其表達(dá)式:表達(dá)式1,表達(dá)式2,……,表達(dá)式n。該表達(dá)式叫逗號表達(dá)式,其運算過程是:自左至右,依次計算各表達(dá)式的值,“表達(dá)式n”的值即為整個逗號表達(dá)式的值。例如:逗號表達(dá)式“a=3*5,a*4”的值等于60:先求解a=3*5,得a=15;再求a*4=60,所以逗號表達(dá)式的值等于60。又例如:逗號表達(dá)式“(a=3*5,a*4),a+5”的值等于20:先求解a=3*5,得a=15;再求a*4=60;最后求解a+5=20,所以逗號表達(dá)式的值等于20。注意:并不是任何地方出現(xiàn)的逗號都是逗號運算符。很多情況下,逗號僅用作分隔符。
2.字節(jié)數(shù)運算
運算符sizeof是單目運算符。把它放在操作數(shù)的前面,就是求該操作數(shù)的字節(jié)數(shù)。sizeof的操作數(shù)可以是變量、類型名,也可以是數(shù)組、結(jié)構(gòu)之類的類型名。若把sizeof放到變量名前,就是求該變量的字節(jié)數(shù);若把sizeof放在帶括號的類型名前,則產(chǎn)生該類型的長度(以字節(jié)為單位)。
3.強(qiáng)制類型轉(zhuǎn)換運算符
可以利用強(qiáng)制類型轉(zhuǎn)換運算符將一個表達(dá)式轉(zhuǎn)換成所需類型。其一般形式為:(類型名)(表達(dá)式)例如:(int)(x+y)(將x+y轉(zhuǎn)換成int類型)(float)(5%3)(將5%3的值轉(zhuǎn)換成float類型)注意:表達(dá)式應(yīng)該用括號括起來。如果寫成:(int)x+y將只將x轉(zhuǎn)換成int型,然后與y相加。2.5.8混合運算整型(int)、單精度實型(float)、雙精度實型(double)可以相互混合運算。由于字符型(char)數(shù)據(jù),其值為代表該字符ASCII碼,因而它也可和上述類型數(shù)據(jù)進(jìn)行混合運算。不同類型數(shù)據(jù)進(jìn)行運算時,要先轉(zhuǎn)換成同一類型,然后進(jìn)行運算。在C程序中,有些類型轉(zhuǎn)換是自動進(jìn)行的,有些轉(zhuǎn)換是被強(qiáng)制進(jìn)行的,前者稱為隱式轉(zhuǎn)換,后者稱為顯示轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換)。2.6數(shù)據(jù)輸出
2.6.1格式輸出函數(shù)格式輸出函數(shù)printf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版智慧城市建設(shè)項目委托投標(biāo)協(xié)議書范本3篇
- 2025版新企業(yè)股東協(xié)議書范本:企業(yè)創(chuàng)新發(fā)展計劃3篇
- 2025版新車銷售與二手車置換優(yōu)惠套餐合同范本2篇
- 2025版學(xué)校食堂勞務(wù)承包與營養(yǎng)膳食研究開發(fā)協(xié)議3篇
- 2025年度個人房產(chǎn)買賣合同違約責(zé)任約定書
- 2025個人合伙企業(yè)股份清算轉(zhuǎn)讓協(xié)議3篇
- 2025版?zhèn)€人借款擔(dān)保合同標(biāo)準(zhǔn)化模板4篇
- 2025年全球及中國水平運動輸送機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球高牌號取向硅鋼行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球牽引型AGV行業(yè)調(diào)研及趨勢分析報告
- 阿米巴落地實操方案
- 火龍罐綜合灸療法
- 藥物制劑工(三級)理論試題題庫及答案
- 高強(qiáng)度間歇訓(xùn)練(HIIT)對代謝健康的長期影響
- ICU患者導(dǎo)管留置登記表
- 紅色中國風(fēng)西安旅游PPT模板
- 中建商務(wù)工作指南手冊
- 耳鼻咽喉:頭頸外科疾病診斷流程與冶療策略
- 貴州省2023年中考英語真題
- 個人借條電子版模板
- 中國思想史 馬工程329P
評論
0/150
提交評論