![C實驗1知識點總結(jié)1_第1頁](http://file4.renrendoc.com/view/691a6da3c04fe8ae2c623fec8a9b2e83/691a6da3c04fe8ae2c623fec8a9b2e831.gif)
![C實驗1知識點總結(jié)1_第2頁](http://file4.renrendoc.com/view/691a6da3c04fe8ae2c623fec8a9b2e83/691a6da3c04fe8ae2c623fec8a9b2e832.gif)
![C實驗1知識點總結(jié)1_第3頁](http://file4.renrendoc.com/view/691a6da3c04fe8ae2c623fec8a9b2e83/691a6da3c04fe8ae2c623fec8a9b2e833.gif)
![C實驗1知識點總結(jié)1_第4頁](http://file4.renrendoc.com/view/691a6da3c04fe8ae2c623fec8a9b2e83/691a6da3c04fe8ae2c623fec8a9b2e834.gif)
![C實驗1知識點總結(jié)1_第5頁](http://file4.renrendoc.com/view/691a6da3c04fe8ae2c623fec8a9b2e83/691a6da3c04fe8ae2c623fec8a9b2e835.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)在計算機的存儲以二進制補碼表示。原碼補碼各種數(shù)據(jù)類型及存儲方式原碼補碼題目通常和類型轉(zhuǎn)換放在一起使用。大端小端根據(jù)計算機系統(tǒng)的不同?;绢愋偷拇鎯Ψ绞椒譃榇蠖四J胶托《四J?。小端模式:如intel、arm。特點:低字節(jié)在低地址。大端模式:如powerpc。特點:高字節(jié)在低地址。思考:如何判斷一個系統(tǒng)采用大端模式還是小端模式?轉(zhuǎn)義字符,大端小端。變量的含義,左值:等號=的左邊,代表的是一個地址例如:inta;a=3a代表變量a對應(yīng)的內(nèi)存的地址,該表達式的意思是:把整形常量3寫在a對應(yīng)的地址開始的四個字節(jié)里。右值:等號=的右邊,代表的是一個地址里的值。intc;c=aa代表變量a的對應(yīng)的內(nèi)存的值。該表達式的意思是:把a對應(yīng)的地址開始的4個字節(jié)的內(nèi)容取出,賦給c對應(yīng)的的地址開始的4個字節(jié)里變量的聲明和定義,及初始化定義是一種特殊的聲明,它創(chuàng)建了一個對象;聲明簡單地說明了在其他地方創(chuàng)建的對象的名字,它允許你使用這個名字。讓我們回顧一下這兩個術(shù)語:定義只能出現(xiàn)在一個地方確定對象的類型并分配內(nèi)存,用于創(chuàng)建新的對象,例如:intmy_array[100][2][4];聲明可以多次出現(xiàn)描述對象的類型,用于指代其他地方定義的對象(例如在其他文件里)例:externintmy_array[][2][4];只要記住下面的內(nèi)容即可分清定義和聲明:聲明相當于普通的聲明:他所說明的并非自身,而是描述其他地方創(chuàng)建的對象。定義相當于特殊的聲明:它為對象分配內(nèi)存。extern對象是聲明,告訴編譯器對象的類型和名字,對象的內(nèi)存分配則在別處進行。(注:這里所說的對象與C++里的對象無關(guān),這里的對象只是跟鏈接器有關(guān)的“東西”,比如函數(shù)和變量。)變量的初始化:在定義時(即為對象分配內(nèi)存時)提供一個值。比如:inta=3;是初始化。下面第二條語句是賦值。比如:inta;a=3;這里區(qū)分開來是為了讓大家明白,對于有些類型初始化和賦值操作不同。比如:數(shù)組inta[3]={1,2,3};可以。卻不能這么做inta[3];a={1,2,3};結(jié)構(gòu)體structA{inta,charb};structAa={12,’m’};可以。卻不能這么做structAa;a={12,’m’};后面在指針和結(jié)構(gòu)體時,會講解復(fù)雜聲明的分析。數(shù)的進制八進制十進制十六進制的表示只是書寫方式的不同,在內(nèi)存里都是二進制來表示的。比如常量:023190x13在機器里的表示相同。printf和scanf等getchar()putchar()基本輸入輸出函數(shù)printf和scanf練習(xí)自增自減運算符,自增自減的分析inta=3;intb;b=a++;基本運算符,運算符的優(yōu)先級sizeofsizeof是一個運算符,用于判斷變量類型占用多少字節(jié)在編譯時其值就已經(jīng)求出來,即根據(jù)類型來判斷它占用的內(nèi)存大小sizeof的使用練習(xí)inta=3,b=4;sizeofa+b=shorta=1;printf(“%d\n”,sizeofa++);a=char*p=NULL;printf(“%d\n”,sizeof(*p));常量:保存在只讀區(qū),值不能被修改。浮點數(shù)常量如:-1.03.14是以double型保存的。同時,由前面介紹的浮點數(shù)的存儲方式可知,計算機里并不能精確地表示浮點數(shù)。例如3.14表示一個約等于3.14的浮點數(shù)。整數(shù)常量如-35、19是以int型保存的。字符常量如‘a(chǎn)’‘m’是以int型保存的。字符串常量是以字符’\0’結(jié)尾的char型數(shù)組保存的。例題:sizeof(1.0)=sizeof(1)=sizeof(‘a(chǎn)’)=sizeof(“ab”)=運算中類型轉(zhuǎn)換及練習(xí)隱式類型轉(zhuǎn)換:當操作符的操作數(shù)類型不一致是會發(fā)生類型轉(zhuǎn)換。它負責(zé)把兩個不同的操作數(shù)類型轉(zhuǎn)換成同一種普通類型,轉(zhuǎn)換后的類型通常就是結(jié)果類型。為什么有類型轉(zhuǎn)換?整形提升:char、shortint和位段類型(無論signed或unsigned)以及枚舉類型將被提升為int,前提是int能夠完整地容納原來的數(shù)據(jù),否則將被轉(zhuǎn)換為unsignedint。float類型在表達式中轉(zhuǎn)換為double類型。若有整形和浮點數(shù),則轉(zhuǎn)換為double類型。隱式類型轉(zhuǎn)換總是向著精度更高,長度更長的方向轉(zhuǎn)換。ANSIC表示,如果編譯器能夠保證運算結(jié)果一致,也可以省略類型提升——這通常出現(xiàn)在表達式中有常量操作數(shù)的時候。比如:charc1,c2;c1=c1+c2;根據(jù)整形提升規(guī)則,先把每個變量的值提升為int的長度,再執(zhí)行加法,然后再對運算符進行裁剪。如果兩個char的加法不會發(fā)生溢出,那么實際執(zhí)行時可以省略類型提升。又如,floatf1,f2;doubled;f1=f2*d;如果編譯器可以確定用float進行運算的結(jié)果跟轉(zhuǎn)換為double后進行運算的結(jié)果一樣,那么也可以使用float來進行乘法運算。對于整形的賦值浮點數(shù)到整型的轉(zhuǎn)換會去掉小數(shù)部分,即取整后賦給整形變量。對于運算里既有有符號也有無符號,首先看,有符號能否表示所有的無符號的值,若可以,則都變成有符號的類型,否則都變成無符號類型。同類型,有符號和無符號之間賦值,是內(nèi)存拷貝,即內(nèi)存內(nèi)容一樣,只是一個當做有符號數(shù)來解讀,一個當做無符號數(shù)解讀。inta=-1;unsignedintb=a;printf(“a%xb%x\n”,a,b);長的賦給短的類型,直接進行截斷處理。短的賦給長的類型,根據(jù)短的類型是否為有符號的。若為有符號的,符號位擴展,賦給長類型。若為無符號的,高字節(jié)填0,賦給長類型的intmain(){inta=0x1280;charb=a;unsignedcharch=a;charc=128;unsignedchard=128;intm=c;intn=d;/*用printf打印上面的值*/ return0;}例如:intmain(){ inta=-20; unsignedcharch=6; if(a+ch>0) printf(“a+ch>0\n”); else printf(“a+ch<=0\n”); return0;}例如:intmain(){chara[1000];inti;for(i=0;i<1000;i++) a[i]=-1-i;printf(“%d\n”,strlen(a));return0;}強制類型轉(zhuǎn)換,即顯式類型轉(zhuǎn)換。inta=3;doubleb=(doule)a;把a的值轉(zhuǎn)換成double類型的格式然后賦值給b。注意:無論隱式還是顯式類型轉(zhuǎn)換都沒有改變原類型(如這里的變量a)的內(nèi)容。另一個會發(fā)生隱式類型轉(zhuǎn)換的地方就是參數(shù)傳遞。在ANSIC中,若沒有使用適當?shù)暮瘮?shù)原型(即聲明),類型提升便會發(fā)生。在被調(diào)用函數(shù)的內(nèi)部,提升后的參數(shù)被裁減為原先聲明的大小。這就是為什么單個的printf格式符字串%d能適用于幾個不同類型,shortchar或int而不論實際傳遞的是上述那種類型。因為對于%d,printf總是從內(nèi)存中取4個字節(jié),并按有符號整形輸出。這是因為在缺少更多信息的情況下(printf的形參是可變參數(shù)),printf假定它是int類型的。因此對于longlong型,除非使用%ld,否則不能打印出正常的信息。----------------------------下次課-----------------------循環(huán)、分支跳轉(zhuǎn)語句、逗號運算符和條
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我的拿手好戲彈鋼琴作文
- 2025年食品安全管理師理論考試復(fù)習(xí)題庫(含答案)
- 2025年江西楓林涉外經(jīng)貿(mào)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年江蘇商貿(mào)職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 《稅收管理業(yè)務(wù)指導(dǎo)》課件
- 專題04:人稱選用(練習(xí))
- 食品工廠衛(wèi)生作業(yè)內(nèi)容
- 蔬菜基地租賃承包合同范本
- 物業(yè)招標合同書
- 建筑消防系統(tǒng)技術(shù)服務(wù)合同
- 2025年華僑港澳臺學(xué)生聯(lián)招考試英語試卷試題(含答案詳解)
- 2024-2025學(xué)年北京石景山區(qū)九年級初三(上)期末語文試卷(含答案)
- 第一章 整式的乘除 單元測試(含答案) 2024-2025學(xué)年北師大版數(shù)學(xué)七年級下冊
- JD37-009-2024 山東省存量更新片區(qū)城市設(shè)計編制技術(shù)導(dǎo)則
- 中國高血壓防治指南(2024年修訂版)
- 北京市海淀區(qū)重點中學(xué)2025屆高考數(shù)學(xué)押題試卷含解析
- GB/Z 44765.3-2024用戶端能源管理系統(tǒng)和電網(wǎng)側(cè)管理系統(tǒng)間的接口第3部分:架構(gòu)
- 《春酒》琦君完整版
- 北師大版(2024新版)七年級上冊數(shù)學(xué)第四章《基本平面圖形》測試卷(含答案解析)
- 湖南省邵陽市武岡市2024屆高三上學(xué)期期中考試地理含答案解析
- 春節(jié)后復(fù)工安全教育培訓(xùn)考試試題及答案
評論
0/150
提交評論