版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章基本數(shù)據(jù)類型與運(yùn)算符
返回總目錄目錄1數(shù)據(jù)類型和取值范圍2運(yùn)算符與表達(dá)式3類型轉(zhuǎn)換
返回總目錄●基本要求:
1)熟悉C語言的常用數(shù)據(jù)類型;
2)熟悉C語言的常用運(yùn)算符、表達(dá)式;●學(xué)習(xí)重點(diǎn):
1)C語言運(yùn)算符的使用;
2)C的數(shù)據(jù)類型;
3)常量的表示,變量的定義與使用。
1.1
標(biāo)識(shí)符
●標(biāo)識(shí)符定義:用來標(biāo)識(shí)變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字命名原則:見名知意不宜混淆如l與I,o與01基本數(shù)據(jù)類型和取值范圍●標(biāo)識(shí)符例:判斷下列標(biāo)識(shí)符號(hào)合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123M.D.John3days#33char$123a>b1基本數(shù)據(jù)類型和取值范圍1.1
標(biāo)識(shí)符
1.1
標(biāo)識(shí)符
●標(biāo)識(shí)符分類:關(guān)鍵字:又稱系統(tǒng)的保留字,C語言已經(jīng)預(yù)定義了一批標(biāo)識(shí)符,他們?cè)诔绦蛑写碇潭ǖ暮x,不能做他用。如:main、double、int等。更多見附錄1預(yù)定義標(biāo)識(shí)符:C語言中預(yù)先定義的并具有特定含義的標(biāo)識(shí)符,如函數(shù)庫的函數(shù)名字、預(yù)處理命令(如define)等。用戶標(biāo)識(shí)符:自己根據(jù)需求定義的標(biāo)識(shí)符。1基本數(shù)據(jù)類型和取值范圍●數(shù)據(jù)類型描述定義:計(jì)算機(jī)處理的對(duì)象是數(shù)據(jù),而數(shù)據(jù)是以某種特定的形式存在的。不同的數(shù)據(jù)之間往往還存在著某些聯(lián)系。不同形式的數(shù)據(jù)決定了數(shù)據(jù)在內(nèi)存中的存儲(chǔ)空間大小及數(shù)據(jù)的取值范圍。C語言的數(shù)據(jù)類型主要有:1基本數(shù)據(jù)類型和取值范圍1.2
基本數(shù)據(jù)類型和取值范圍
1基本數(shù)據(jù)類型和取值范圍1.2
基本數(shù)據(jù)類型和取值范圍
C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void自定義typedef數(shù)值類型字符類型char枚舉類型enum整型浮點(diǎn)型單精度型float雙精度型double短整型short長(zhǎng)整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作●數(shù)據(jù)類型總表
返回目錄●基本類型及范圍
(VisualC++6.0環(huán)境下)1基本數(shù)據(jù)類型和取值范圍1.2
基本數(shù)據(jù)類型和取值范圍
1.3
常量與變量
C語言中基本數(shù)據(jù)類型都有常量和變量之分。C程序中對(duì)用到的所有數(shù)據(jù)都要指定數(shù)據(jù)類型。1基本數(shù)據(jù)類型和取值范圍●常量定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))分類:符號(hào)常量:用標(biāo)識(shí)符代表常量定義格式:#define
符號(hào)常量常量如#definePRICE30例符號(hào)常量舉例#definePRICE30main(){
intnum,total;num=10;total=num*PRICE;
printf("total=%d",total);}一般用大寫字母是宏定義預(yù)處理命令,不是C語句直接常量:整型常量實(shí)型常量字符常量字符串常量1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●常量---整型常量(整常數(shù))三種形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號(hào)表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.如0x123,0Xff示例:0571=(377)100x179=(377)100X179=(377)101基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●常量---整型常量(整常數(shù))兩種長(zhǎng)度:整型常量按長(zhǎng)度劃分為兩種:短整型和長(zhǎng)整型(后綴為小寫字母l或大寫字母L),從長(zhǎng)度來看:TurboC中默認(rèn)為短整型,如-377是一個(gè)短整型數(shù),而-377l或-377L表示-377是長(zhǎng)整型數(shù)。而在VisualC++6.0中默認(rèn)為長(zhǎng)整型,如-377、-377l或-377L均表示-377是長(zhǎng)整型數(shù)。
例:語句:printf(“%d,%d”,sizeof(-377),sizeof(-377L));
在TurboC中的運(yùn)行結(jié)果為:2,4
而在VC中的結(jié)果為:4,4小結(jié):從數(shù)據(jù)類型角度來分析,整型常量默認(rèn)為int類型,而加上后綴(l或L)后,就是longint類型。1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●常量---實(shí)型常量(實(shí)數(shù)或浮點(diǎn)數(shù))表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn))如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3,123E2,1.23e4,e-5,1.2E-3.5
實(shí)型常量的類型默認(rèn)double型在實(shí)型常量后加字母f或F,認(rèn)為它是float型例:語句:printf(“%d,%d”,sizeof(0.123),sizeof(0.123F));
在TurboC和VC中的運(yùn)行結(jié)果均為:8,41基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●常量---字符常量定義:用單引號(hào)括起來的單個(gè)普通字符或轉(zhuǎn)義字符.
字符常量的值:該字符的ASCII碼值如‘a(chǎn)’‘A’‘?’‘\n’‘\101’轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示如‘A’——65,‘a(chǎn)’——97,‘0’——48,‘\n’——101基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●常量---字符常量<轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義\n\v\r\a\‘\ooo\t\b\f\\\“\xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號(hào)3位8進(jìn)制數(shù)ooo代表的字符水平制表退格換頁反斜線雙引號(hào)2位16進(jìn)制數(shù)hh代表的字符1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●常量---字符常量如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------()例:‘A’-------’\101’-------’\x41’--------65轉(zhuǎn)義字符示例:1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●常量---字符常量例轉(zhuǎn)義字符舉例
main(){printf("\101\x42C\n");
printf("Isay:\"Howareyou?\"\n");
printf("\\CProgram\\\n");
printf("Turbo\'C\'");}運(yùn)行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’例main(){printf(“Y\b=\n”);}運(yùn)行結(jié)果:屏幕顯示:=打印機(jī)輸出:¥1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●常量---字符串常量定義:用雙引號(hào)(“”)括起來的字符序列存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè)‘\0’作為字符串結(jié)束標(biāo)志hello\0例字符串“hello”在內(nèi)存中例空串“”\0字符常量與字符串常量不同aa\0例‘a(chǎn)’“a”例:charch;
ch=“A”;例:charch;
ch=‘A’;1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●變量概念:其值可以改變的量變量三要素:變量類型、變量名與變量值變量定義的一般格式:
數(shù)據(jù)類型變量1[,變量2,…,變量n];例:
inta,b,c;floatdata;決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標(biāo)識(shí)符1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●變量編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元…...地址shorta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內(nèi)存1-3隨機(jī)數(shù)例:
inta=2,b,c=4;floatdata=3.67;charch=‘A’;
intx=1,y=1,z=1;
intx=y=z=1;變量初始化:定義時(shí)賦初值1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●變量例1
intstudent;
stadent=19;//本行語句有錯(cuò),符號(hào)“stadent”
未定義
例2
int
a,b,c;c=a%b;
//本行語句有錯(cuò),a、b沒有具體的值就參與運(yùn)算
變量的使用:先定義,后使用1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●變量main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;
printf(“data=%f\n”,data);}變量定義可執(zhí)行語句main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;
printf(“data=%f\n”,data);}變量定義位置:一般放在函數(shù)開頭1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●變量整型變量占字節(jié)數(shù)隨機(jī)器不同而不同,主要類型說明符:short、int、long可用sizeof(類型標(biāo)識(shí)符)測(cè)量#include"stdio.h"main(){
printf("intlength=%d",sizeof(int));}VC運(yùn)行結(jié)果:intlength=41基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●變量實(shí)型變量主要類型說明符:float、double、longdoublefloat:占4字節(jié),提供6~7位有效數(shù)字(跟C編譯系統(tǒng)有關(guān),將實(shí)型數(shù)據(jù)按指數(shù)形式存儲(chǔ)時(shí),一般若以24位二進(jìn)制位表示小數(shù)部分(含符號(hào)),則對(duì)應(yīng)的十進(jìn)制有效數(shù)字為7位)double類型說明符:占8字節(jié),提供15~16位有效數(shù)字#include<stdio.h>main(){doublea=1.234567890123456789e18;floatb=a;
printf("a=%.20le\n",a);
printf("b=%.20le\n",b);}程序輸出結(jié)果為:a=1.23456789012345680000e18b=1.23456793955060940000e181基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●變量字符型變量字符變量存放字符ASCII碼類型說明符:charchar:占1個(gè)字節(jié)char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/沒有字符串變量,字符串用字符數(shù)組存放1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
●變量變量綜合示例:
#definePRICE12.5main(){intnum=3;floattotal;charch1,ch2=‘D’;total=num*PRICE;ch1=ch2-‘A’+‘a(chǎn)’;
printf(“total=%f,ch1=%c\n”,total,ch1);}運(yùn)行結(jié)果:total=37.500000,ch1=d宏定義變量定義輸出結(jié)果1基本數(shù)據(jù)類型和取值范圍1.3
常量與變量
2運(yùn)算符與表達(dá)式2.1
C中提供的主要運(yùn)算符
C運(yùn)算符算術(shù)運(yùn)算符:(+-*/%++--)關(guān)系運(yùn)算符:(<<===>>=!=)邏輯運(yùn)算符:((!&&||)位運(yùn)算符:(<<>>~|^&)賦值運(yùn)算符:(=及其擴(kuò)展)條件運(yùn)算符:(?:)逗號(hào)運(yùn)算符:(,)指針運(yùn)算符:(*&)求字節(jié)數(shù):(sizeof)強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:(.->)下標(biāo)運(yùn)算符:([])其它:(()-)●運(yùn)算符
返回目錄2.2算術(shù)運(yùn)算與算法表達(dá)式
結(jié)合方向:從左向右優(yōu)先級(jí):----->*/%----->+-
(2)(3)(4) 說明:“-”可為單目運(yùn)算符時(shí),右結(jié)合性兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)例5/2=2
-5/2.0=-2.5例5%2=1
-5%2=-11%10=
1
5%1=
05.5%2()●基本算術(shù)運(yùn)算符:+-*/%2運(yùn)算符與表達(dá)式●自增、自減運(yùn)算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4“先加后用”“先用后加”2.2算術(shù)運(yùn)算與算法表達(dá)式
2運(yùn)算符與表達(dá)式●自增、自減運(yùn)算符++--說明:++--不能用于常量和表達(dá)式,如5++,(a+b)++++--結(jié)合方向:自右向左優(yōu)先級(jí):-++-------->*/%----->+-
(2)(3)(4)例-i++-(i++)i=3;printf(“%d”,-i++);//-3
例-i++i=3;printf(“%d”,-i++);2.2算術(shù)運(yùn)算與算法表達(dá)式
2運(yùn)算符與表達(dá)式2.3
賦值運(yùn)算與連續(xù)賦值
在C中,運(yùn)算符“=”是賦值運(yùn)算符。
簡(jiǎn)單賦值運(yùn)算的一般形式為:
變量=表達(dá)式其功能是將一個(gè)表達(dá)式的值賦給變量。如下表達(dá)式
a=b+c該式讀作將表達(dá)式b+c的值賦給a。其本意是改寫變量a的值,而不是判斷b+c與a是否相等,●賦值運(yùn)算2運(yùn)算符與表達(dá)式●連續(xù)賦值在C語言中,賦值運(yùn)算符的級(jí)別較低,為14級(jí),并滿足右結(jié)合規(guī)則。因此表達(dá)式:
x=y=z=1是連續(xù)賦值表達(dá)式,其功能相當(dāng)于如下表達(dá)式的功能
x=(y=(z=1))它是先執(zhí)行表達(dá)式z=1,即將1賦給z,表達(dá)式值也為1,然后將表達(dá)式值1賦給y,即執(zhí)行y=1,表達(dá)式值也仍為1,再將表達(dá)式值1賦給x,即執(zhí)行x=1。2.3
賦值運(yùn)算與連續(xù)賦值
2運(yùn)算符與表達(dá)式2.4
復(fù)合賦值運(yùn)算
運(yùn)算符舉例意義運(yùn)算符舉例意義+=a+=ba=a+b&=a&=ba=a&b-=a-=ba=a-b^=a^=ba=a^b*=a*=ba=a*b|=a|=ba=a|b/=a/=ba=a/b>>=a>>=ba=a>>b%=a%=ba=a%b<<=a<<=ba=a<<b表2.7復(fù)合賦值運(yùn)算符2運(yùn)算符與表達(dá)式2.5
逗號(hào)運(yùn)算
形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n結(jié)合性:從左向右優(yōu)先級(jí):15計(jì)算過程:從前往后,依次計(jì)算逗號(hào)表達(dá)式的值:等于表達(dá)式n的值例:#include<stdio.h>main(){intx,y=7;floatz=4;x=(y=y+6,y/z);
printf("x=%d\n",x);}X=3程序運(yùn)行結(jié)果為:2運(yùn)算符與表達(dá)式2.6
求字節(jié)數(shù)(sizeof)
1)sizeof計(jì)算類型占用字節(jié)數(shù)的形式為:
sizeof(類型)2)sizeof計(jì)算變量占用字節(jié)數(shù)的形式有兩種:
sizeof(變量)或sizeof
變量示例:
#include<stdio.h>main(){
inta=5;
printf("%d\n",sizeof(int));
printf("%d\n",sizeof(a));
printf("%d\n",sizeofa);}222運(yùn)行結(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《食品保質(zhì)期規(guī)定》課件
- 《建設(shè)工程項(xiàng)目組織》課件
- 《家庭花卉養(yǎng)殖技巧》課件
- 經(jīng)濟(jì)全球化的趨勢(shì)教學(xué)課件
- 養(yǎng)老院老人康復(fù)設(shè)施維修人員表彰制度
- 《商務(wù)數(shù)據(jù)分析》課件-分析報(bào)告概述與結(jié)構(gòu)、撰寫原則與注意事項(xiàng)
- 《環(huán)境因素識(shí)別教材》課件
- 掛靠連續(xù)梁施工合同(2篇)
- 2024年數(shù)據(jù)中心運(yùn)維服務(wù)合同2篇
- 《燙傷護(hù)理》課件
- 新:中國(guó)兒童中樞性肌肉痙攣體外沖擊波治療臨床實(shí)踐指南
- 山東省濟(jì)南市2023-2024學(xué)年高二上學(xué)期期末考試生物試題 附答案
- 印刷投標(biāo)服務(wù)方案
- 廣東開放大學(xué)2024秋《形勢(shì)與政策(專)》形成性考核參考答案
- 2024年《軍事理論》考試題庫附答案(含各題型)
- MOOC 馬克思主義基本原理-華東師范大學(xué) 中國(guó)大學(xué)慕課答案
- MOOC 大學(xué)生創(chuàng)新與創(chuàng)業(yè)實(shí)踐-西南交通大學(xué) 中國(guó)大學(xué)慕課答案
- 2024年《大學(xué)語文》期末考試復(fù)習(xí)題庫(含答案)
- 小學(xué)各年級(jí) 科技與創(chuàng)新 主題班會(huì)
- 繪畫里的中國(guó):走進(jìn)大師與經(jīng)典學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 機(jī)動(dòng)車維修竣工出廠合格證樣式
評(píng)論
0/150
提交評(píng)論