![C語言快速入門_第1頁](http://file4.renrendoc.com/view/fbcefc640865ccc38c4ce1d0a5586a9c/fbcefc640865ccc38c4ce1d0a5586a9c1.gif)
![C語言快速入門_第2頁](http://file4.renrendoc.com/view/fbcefc640865ccc38c4ce1d0a5586a9c/fbcefc640865ccc38c4ce1d0a5586a9c2.gif)
![C語言快速入門_第3頁](http://file4.renrendoc.com/view/fbcefc640865ccc38c4ce1d0a5586a9c/fbcefc640865ccc38c4ce1d0a5586a9c3.gif)
![C語言快速入門_第4頁](http://file4.renrendoc.com/view/fbcefc640865ccc38c4ce1d0a5586a9c/fbcefc640865ccc38c4ce1d0a5586a9c4.gif)
![C語言快速入門_第5頁](http://file4.renrendoc.com/view/fbcefc640865ccc38c4ce1d0a5586a9c/fbcefc640865ccc38c4ce1d0a5586a9c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言快速入門王武
蔡逢煌2013.10目錄什么是程序?數(shù)據(jù)及其表示數(shù)據(jù)處理的基本方法程序流控制函數(shù)構(gòu)造數(shù)據(jù)類型指針預(yù)處理1.什么是程序?程序是為了完成某一特定功能的智能體。本質(zhì)上是實(shí)現(xiàn)對數(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ù)及其表示如何對上述不同的數(shù)據(jù)進(jìn)行表示?需要考慮什么因素?主要考慮的因素:取值范圍占據(jù)空間大小2.1基本類型char字符型int整型數(shù)float單精度浮點(diǎn)數(shù)double雙精度浮點(diǎn)數(shù)【特別說明】在嵌入式MCU中,分定點(diǎn)型MCU和浮點(diǎn)型MCU。一般定點(diǎn)型MCU使用較多,因此浮點(diǎn)數(shù)數(shù)據(jù)類型我們不講。2.2有符號(hào)數(shù)和無符號(hào)數(shù)有符號(hào)數(shù):所表示的數(shù)據(jù)有正有負(fù)以及0,前綴符:signed。無符號(hào)數(shù):所表示的數(shù)據(jù)只有正數(shù)和0,前綴符:unsigned。有符號(hào)字符型signedchar=char無符號(hào)字符型unsignedchar有符號(hào)整型數(shù)signedint=int無符號(hào)整型數(shù)unsignedint2.3常量與變量變量描述變化的量,可以改變其值。常量描述不變的量,不可以改變其值,比如常數(shù)。2.4變量的定義格式:數(shù)據(jù)類型變量名;數(shù)據(jù)類型變量名列表;例:charAge;//定義一個(gè)字符型變量AgeintNo,Name;//定義2個(gè)整型數(shù)變量
No和Name。變量名命名原則:以下劃線和字母開頭,后跟下劃線、字母和數(shù)字。大小寫不同,要有意義。變量就是存儲(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)定義過了。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)語句:while、do-while、for開關(guān)語句:break、continue5.函數(shù)具有相對完整的功能塊,封裝起來,成為函數(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é)生成績統(tǒng)計(jì)表,包含姓名(字符型)+學(xué)號(hào)(整形)+年齡(整形)+性別(字符型)+成績(整形或浮點(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{{
類型說明符成員名;charname[16];類型說明符成員名;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)的場合;
枚舉類型在定義中列舉出所有可能的取值
枚舉成員的值依次加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è)地址;
通過指針可以訪問變量的地址;
通過指針可以訪問數(shù)組和函數(shù)的首地址,用指針來操作數(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025小學(xué)二年級(jí)學(xué)習(xí)計(jì)劃(32篇)
- 技術(shù)顧問勞務(wù)合同(3篇)
- 施工合同書(32篇)
- 2024-2025學(xué)年廣東省深圳市龍崗區(qū)德琳學(xué)校高二上學(xué)期第一次考試歷史試卷
- 2024-2025學(xué)年第15課貨幣的使用與世界貨幣體系的形成-勤徑學(xué)升高中歷史選擇性必修1同步練測(統(tǒng)編版2019)
- 2025年協(xié)同開發(fā)建房協(xié)議版式
- 2025年農(nóng)業(yè)合作養(yǎng)殖協(xié)議模版
- 2025年供應(yīng)鏈優(yōu)化供應(yīng)商協(xié)議
- 2025年雙方合作演藝協(xié)議
- 2025年交易合同附加條件標(biāo)準(zhǔn)文本
- (2024)云南省公務(wù)員考試《行測》真題及答案解析
- 公司安全事故隱患內(nèi)部舉報(bào)、報(bào)告獎(jiǎng)勵(lì)制度
- 統(tǒng)編版語文五年級(jí)下冊 《古詩三首》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)及反思
- 春節(jié)后復(fù)工安全檢查表
- 管道公稱直徑壁厚對照表
- 項(xiàng)城市2021年度農(nóng)業(yè)水價(jià)綜合改革
- 工程倫理-第章工程與倫理通用PPT課件
- 我眼中的中國發(fā)展(課堂PPT)
- 稻谷品質(zhì)測定指標(biāo)及方法
- 公司面試評價(jià)表
- 航空煤油 MSDS 安全技術(shù)說明書
評論
0/150
提交評論