C語(yǔ)言快速入門(mén)_第1頁(yè)
C語(yǔ)言快速入門(mén)_第2頁(yè)
C語(yǔ)言快速入門(mén)_第3頁(yè)
C語(yǔ)言快速入門(mén)_第4頁(yè)
C語(yǔ)言快速入門(mén)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言快速入門(mén)王武

蔡逢煌2013.10目錄什么是程序?數(shù)據(jù)及其表示數(shù)據(jù)處理的基本方法程序流控制函數(shù)構(gòu)造數(shù)據(jù)類型指針預(yù)處理1.什么是程序?程序是為了完成某一特定功能的智能體。本質(zhì)上是實(shí)現(xiàn)對(duì)數(shù)據(jù)的處理,得到新的數(shù)據(jù)。輸入數(shù)據(jù)輸出數(shù)據(jù)程序2.數(shù)據(jù)及其表示天氣預(yù)報(bào):時(shí)間段:幾點(diǎn)到幾點(diǎn)天氣狀況:晴、多云、陰、等等溫度值:多少度風(fēng)力情況:微風(fēng)2.數(shù)據(jù)及其表示如何對(duì)上述不同的數(shù)據(jù)進(jìn)行表示?需要考慮什么因素?主要考慮的因素:取值范圍占據(jù)空間大小2.1基本類型char字符型int整型數(shù)float單精度浮點(diǎn)數(shù)double雙精度浮點(diǎn)數(shù)【特別說(shuō)明】在嵌入式MCU中,分定點(diǎn)型MCU和浮點(diǎn)型MCU。一般定點(diǎn)型MCU使用較多,因此浮點(diǎn)數(shù)數(shù)據(jù)類型我們不講。2.2有符號(hào)數(shù)和無(wú)符號(hào)數(shù)有符號(hào)數(shù):所表示的數(shù)據(jù)有正有負(fù)以及0,前綴符:signed。無(wú)符號(hào)數(shù):所表示的數(shù)據(jù)只有正數(shù)和0,前綴符:unsigned。有符號(hào)字符型signedchar=char無(wú)符號(hào)字符型unsignedchar有符號(hào)整型數(shù)signedint=int無(wú)符號(hào)整型數(shù)unsignedint2.3常量與變量變量描述變化的量,可以改變其值。常量描述不變的量,不可以改變其值,比如常數(shù)。2.4變量的定義格式:數(shù)據(jù)類型變量名;數(shù)據(jù)類型變量名列表;例:charAge;//定義一個(gè)字符型變量AgeintNo,Name;//定義2個(gè)整型數(shù)變量

No和Name。變量名命名原則:以下劃線和字母開(kāi)頭,后跟下劃線、字母和數(shù)字。大小寫(xiě)不同,要有意義。變量就是存儲(chǔ)空間的一個(gè)別名,只是為了記憶方便而誕生的。因此變量名一定要有意義,不然就失去別名的意義了。示例:GPIO_0_Mode_GeneralPurpose=0,//!<Denotesageneralpurposefnction

GPIO_0_Mode_EPWM1A,//!<DenotesaEPWM1Afunction

GPIO_0_Mode_Rsvd_2,//!<Denotesareservedfunction

GPIO_0_Mode_Rsvd_3,//!<Denotesareservedfunction2.5常量的定義在變量前加前綴“const”例:constintAge=18;2.6變量和常量的實(shí)質(zhì)含義在計(jì)算機(jī)里,可以這么認(rèn)為計(jì)算機(jī)由CPU+BUS+MEMORY構(gòu)成。MEMORY=DATAM+PROGRAMMDATAM:變量;PROGRAMM:常量空間編址管理。不管變量還是常量其實(shí)是MEMORY空間中某一個(gè)具體空間的別名。2.7變量的聲明變量的聲明:extern數(shù)據(jù)類型變量名;例:externintNo;意義:告訴編譯器,這個(gè)變量在別的地方已經(jīng)定義過(guò)了。3數(shù)據(jù)處理的基本方法算術(shù)運(yùn)算:+、-、*、/、()、%、++、--賦值運(yùn)算:=關(guān)系運(yùn)算:<、<=、>、>=、==、!=邏輯運(yùn)算:&&、||、!按位運(yùn)算:&、|、^求反運(yùn)算:~移位運(yùn)算:>>、<<4.程序流控制條件分支兩路分支:if-else多路分支:elseif、switch循環(huán)語(yǔ)句:while、do-while、for開(kāi)關(guān)語(yǔ)句:break、continue5.函數(shù)具有相對(duì)完整的功能塊,封裝起來(lái),成為函數(shù)。定義和聲明變量作用范圍和生存期函數(shù)間通訊5.1函數(shù)的定義和聲明定義格式:返回值類型函數(shù)名(形式參數(shù)列表){

函數(shù)體;

return返回值;}聲明格式:返回值類型函數(shù)名(形式參數(shù)列表);5.2函數(shù)的調(diào)用格式:函數(shù)名(實(shí)際參數(shù));5.3變量的作用范圍和生存期全局變量局部變量靜態(tài)變量:static嵌入式特有寄存器變量:volatile5.4函數(shù)間的通訊參數(shù)傳遞值傳遞地址傳遞變量6構(gòu)造數(shù)據(jù)類型6.1數(shù)組類型6.2結(jié)構(gòu)體類型:struct6.3聯(lián)合體類型:union6.4枚舉類型:enum6.2嵌入式C的結(jié)構(gòu)體結(jié)構(gòu)可以處理具有不同數(shù)據(jù)類型的一組數(shù)據(jù);比如:學(xué)生成績(jī)統(tǒng)計(jì)表,包含姓名(字符型)+學(xué)號(hào)(整形)+年齡(整形)+性別(字符型)+成績(jī)(整形或浮點(diǎn)型)結(jié)構(gòu)體使用指南:結(jié)構(gòu)類型定義結(jié)構(gòu)的聲明結(jié)構(gòu)的初始化結(jié)構(gòu)的使用定義結(jié)構(gòu)struct結(jié)構(gòu)名structstudent{{

類型說(shuō)明符成員名;charname[16];類型說(shuō)明符成員名;intnum;

。。。intage;

}}注意:結(jié)構(gòu)定義的最后一定要加分號(hào)“;”聲明結(jié)構(gòu)變量1、先定義結(jié)構(gòu),再聲明結(jié)構(gòu)變量struct結(jié)構(gòu)名結(jié)構(gòu)變量;

示例:structstudentxiaoming;2、定義結(jié)構(gòu)時(shí)聲明結(jié)構(gòu)變量structstudent{charname[16];intnum;intage;}xiongming;3、直接聲明結(jié)構(gòu)變量(上例student可以去掉)

結(jié)構(gòu)變量的初始化聲明的同時(shí)進(jìn)行初始化structstudent{charname[16];intnum;intage;}xiaoming={“xiaoming”,115,,23}動(dòng)態(tài)初始化=“xiaoming”;xiaoming.num=115;結(jié)構(gòu)指針結(jié)構(gòu)指針是指該指針變量指向一個(gè)結(jié)構(gòu)變量。結(jié)構(gòu)指針變量中的值是所指向的結(jié)構(gòu)變量的首地址定義結(jié)構(gòu)指針structstudent*pstu使用結(jié)構(gòu)指針pstu=&xiaoming;//指針賦值(*pstu).num=115;pstu->num=115;類型聲明typedef原類型名新類型名;

參考GPIO指針。先定義結(jié)構(gòu)體;typedefstruct_GPIO_Obj_{

。。。}GPIO_Obj;

定義結(jié)構(gòu)體指針

typedefGPIO_Obj*GPIO_Handle;

GPIO_Handle為新定義的結(jié)構(gòu)體指針類型

聲明結(jié)構(gòu)體指針GPIO_HandlemyGpio;//聲明myGpio為結(jié)構(gòu)體指針變量。是具有struct_GPIO_Obj_結(jié)構(gòu)的結(jié)構(gòu)體指針。

結(jié)構(gòu)體指針變量的賦值結(jié)構(gòu)體指針變量必須賦值后才能使用。

結(jié)構(gòu)指針變量的賦值就是把結(jié)構(gòu)變量的首地址賦予該結(jié)構(gòu)指針變量

結(jié)構(gòu)指針變量的賦值:myGpio=GPIO_init((void*)GPIO_BASE_ADDR,sizeof(GPIO_Obj));myGpio=(GPIO_Obj*)GPIO_BASE_ADDR;myGpio=(GPIO_Handle)GPIO_BASE_ADDR;myGpio=(GPIO_Handle)0x00006F80;myGpio=(void*)0x00006F80;結(jié)構(gòu)指針的使用myGpio)->GPAMUX1=0x00000000;myGpio)->GPAMUX2=0x00000000;myGpio)->GPBMUX1=0x00000000;myGpio)->GPADIR=0xFFFFFFFF;myGpio)->GPBDIR=0x0000000F;6.3聯(lián)合類型(union)

聯(lián)合類型與結(jié)構(gòu)類型的定義、聲明、使用都一樣;

區(qū)別:

數(shù)據(jù)存儲(chǔ)不一樣:聯(lián)合變量的成員占用同一個(gè)內(nèi)存空間;結(jié)構(gòu)變量的成員分別獨(dú)占自己的內(nèi)存空間。6.4枚舉類型(enum)枚舉類型主要用于將變量的取值限定在一個(gè)有限的范圍內(nèi)的場(chǎng)合;

枚舉類型在定義中列舉出所有可能的取值

枚舉成員的值依次加1枚舉是一種基本數(shù)據(jù)類型。枚舉變量的取值是有限的,枚舉元素是常量,不是變量typedefenum

{

GPIO_PullUp_Enable=0,//!<Denotespullupwillbeenabled

GPIO_PullUp_Disable//!<Denotespullupwillbedisabled}GPIO_PullUp_e;7.指針指針的實(shí)質(zhì)指針的運(yùn)算指針變量定義指針變量的使用函數(shù)指針1、指針的實(shí)質(zhì)

內(nèi)存中每個(gè)單元都有個(gè)編號(hào),就是“地址”

程序中定義的變量,系統(tǒng)編譯時(shí)就會(huì)為這個(gè)變量分配內(nèi)存單元;指針是一個(gè)特殊的變量,它里面存儲(chǔ)的數(shù)值被解釋為內(nèi)存里的一個(gè)地址;

通過(guò)指針可以訪問(wèn)變量的地址;

通過(guò)指針可以訪問(wèn)數(shù)組和函數(shù)的首地址,用指針來(lái)操作數(shù)字和函數(shù),可以使程序精煉、執(zhí)行效率高。

指針的類型

指針?biāo)赶虻念愋?/p>

指針的值或指針?biāo)赶虻膬?nèi)存區(qū)

指針本身所占據(jù)的內(nèi)存區(qū)int*ptr;ptr=&a指針類型:int*指針?biāo)赶虻念愋停篿nt指針的值:32位地址。變量a的地址。指針本身所占據(jù)的內(nèi)存區(qū):占據(jù)2個(gè)存儲(chǔ)單元,即32位。

特殊的指針變量賦值------數(shù)組inta[7],*p;p=a;

或p=&a[0];

特殊的指針變量賦值----函數(shù)入口int(*pfun)();pfun=fun;//fun為已定義的函數(shù)名2、指針的運(yùn)算

取地址運(yùn)算符&&變量名

取值運(yùn)算符*

*指針變量名

關(guān)系運(yùn)算<>>=<===

若p==q為真,則表示p和q指向同一地址;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論