C語言課件:第8講C語言入門_第1頁
C語言課件:第8講C語言入門_第2頁
C語言課件:第8講C語言入門_第3頁
C語言課件:第8講C語言入門_第4頁
C語言課件:第8講C語言入門_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言部分,C語言基礎(chǔ)知識(shí) 基本控制結(jié)構(gòu)程序設(shè)計(jì) 函數(shù) 數(shù)組及其應(yīng)用 指針與動(dòng)態(tài)內(nèi)存分配* 字符串* 結(jié)構(gòu)體、鏈表及其應(yīng)用* 輸入輸出和文件操作,0,第8講 C語言入門,C語言介紹 如何寫一個(gè)C語言程序 我們的第一個(gè)C語言程序 變量和數(shù)據(jù)類型,1,什么是C 語言,C語言是一種通用的編程語言,廣泛用于系統(tǒng)與應(yīng)用軟件的開發(fā); 由美國貝爾實(shí)驗(yàn)室的Dennis M. Ritchie于1972年推出,1978年后,C語言先后被移植到大、中、小及微型機(jī)上; C語言繪圖能力強(qiáng),較高的可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,適于編寫系統(tǒng)軟件,二維,三維圖形和動(dòng)畫。,2,C 的特征,關(guān)鍵字 結(jié)構(gòu)、聯(lián)合體復(fù)合數(shù)據(jù)類型

2、 指針內(nèi)存、數(shù)組 外部標(biāo)準(zhǔn)庫I/O等 編譯為本機(jī)代碼 宏預(yù)處理機(jī),程序設(shè)計(jì)基礎(chǔ),3,C 語言標(biāo)準(zhǔn),1972 發(fā)明C語言 1978 The C Programming Language 出版(首個(gè)標(biāo)準(zhǔn)) 1989 C89標(biāo)準(zhǔn)(ANSI C或標(biāo)準(zhǔn)C) 1990 ANSI C被ISO正式通過 C90 1999 C99 2007 新的C標(biāo)準(zhǔn)C1X宣布 本課程使用的C版本:ANSI/ISO C (C89/C90),4,C 的用途,系統(tǒng)級(jí)編程 操作系統(tǒng),如Linux、Windows 微控制器:汽車、飛機(jī) 嵌入式處理器:電話、便攜式電子設(shè)備 DSP處理器:數(shù)字音頻與電視系統(tǒng) ,5,C 與其他編程語言,較近的

3、衍生品:C+,C# 受影響的:Java,Perl,Python C語言所缺少的: 異常處理 邊界檢查 垃圾回收機(jī)制 面向?qū)ο缶幊?多態(tài)性 較低級(jí)語言 代碼執(zhí)行更快,程序設(shè)計(jì)基礎(chǔ),6,第8講 C語言入門,C語言介紹 如何寫一個(gè)C語言程序 我們的第一個(gè)C語言程序 變量和數(shù)據(jù)類型,7,高級(jí)編程語言和編譯器,高級(jí)編程語言可以簡化編程過程 不必用數(shù)字代碼表示指令; 所使用的指令更接近人考慮問題的方式。 高級(jí)指令是計(jì)算機(jī)不能理解的“胡言亂語” 需要編譯器; 編譯器是將高級(jí)語言程序解釋成計(jì)算機(jī)所需的詳細(xì)機(jī)器語言指令集的程序; 使用不同的編譯器,可以將同一高級(jí)語言程序轉(zhuǎn)換為各種不同的機(jī)器語言程序。,程序設(shè)計(jì)基

4、礎(chǔ),8,使用C語言的7個(gè)步驟,9,1.,2.,3.,4.,5.,6.,7.,分析程序目標(biāo),設(shè)計(jì)程序,編寫代碼,編譯,運(yùn)行程序,調(diào)試程序,修改和維護(hù)程序,在哪里編寫代碼? 怎么編譯、調(diào)試、運(yùn)行?,.o,.c,源代碼文件,可執(zhí)行文件 (目標(biāo)代碼),幾類開發(fā)環(huán)境,Ubuntu(Linux) 文本編輯器:gedit Text Editor 編譯器:gcc - GNU Compiler Collection 調(diào)試器:gdb Windows 集成開發(fā)環(huán)境IDE MinGW: Minimalist GNU for Windows 文本編輯器Editplus Mac OS X XCode,10,Ubuntu下

5、C代碼編寫,11,gedit,Ubuntu 16.04 LTS,Ubuntu下C代碼編寫,首先保存為 .c 文件擴(kuò)展名 然后在gedit中直接編輯代碼,12,Ubuntu下gcc程序編譯,保存為.o 文件擴(kuò)展名 編譯器:gcc( C語言最權(quán)威的Lnixu編譯器),13,關(guān)于gcc的幾點(diǎn)說明,運(yùn)行 gcc: $ gcc -Wall infilename.c o outfilename.o -Wall:激活編譯器的報(bào)警功能 支持更復(fù)雜的編譯格式 多源文件 附加路徑 優(yōu)化、庫鏈接 eg:嵌入調(diào)試信息,不進(jìn)行代碼優(yōu)化 $ gcc -g o0 -Wall infilename.c o outfilena

6、me.o,14,$ gcc -Wall infilename.c o outfilename,gcc編譯示例,15,Ubuntu下使用gdb調(diào)試程序,gdb:命令行調(diào)試器 一些有用的指令 (前提$ gcc g ) break linenumber - 在特定行(行號(hào))設(shè)置斷點(diǎn) break file: linenumber - 在file中的特定行設(shè)置斷點(diǎn) run或r- 執(zhí)行該程序 c - 繼續(xù)執(zhí)行 next- 執(zhí)行程序下一行 step- 執(zhí)行程序下一行,遇到函數(shù)則進(jìn)入函數(shù)內(nèi)部執(zhí)行 quit或q- 退出gdb print expression - 輸出指定表達(dá)式的當(dāng)前值 help command

7、 - 獲取命令名為command的內(nèi)部幫助,16,gdb命令行調(diào)試器,17,IDE 集成開發(fā)環(huán)境,Integrated Development Enviroment,簡稱IDE 集代碼編輯器、編譯器、調(diào)試工具于一體 適用于大型項(xiàng)目開發(fā) 常用IDEs: Eclipse(CDT) Micorsoft Visual C+ Micorsoft Visual Studio 2010/2012/2013/2015 KDevelop XCode (Mac OS X) ,18,VC+6.0中的C代碼編寫(IDE),19,代碼編寫區(qū),編譯鏈接信息顯示區(qū),編譯 鏈接 運(yùn)行 調(diào)試 斷點(diǎn),編譯、運(yùn)行調(diào)試指令區(qū),第8講

8、 C語言入門,C語言介紹 如何寫一個(gè)C語言程序 我們的第一個(gè)C語言程序 變量和數(shù)據(jù)類型,20,我們的C程序: “Hello, Everyone”,掌握 .c 文件結(jié)構(gòu) 基礎(chǔ)語法 注釋 宏指令 基本聲明* main()函數(shù)及其函數(shù)結(jié)構(gòu) 標(biāo)準(zhǔn)控制臺(tái)輸入輸出,如puts(),21,.c 文件的基本結(jié)構(gòu),22,/* 有關(guān)當(dāng)前代碼功能的注釋 */,#include語句與預(yù)處理定義,函數(shù)定義與函數(shù)聲明(原型),Define main() function / 定義main() Function body ,Define other function / 定義其他函數(shù) Function body .,注釋,

9、注釋一行: / 注釋多行: /*/ 作用:提高代碼的可讀性 特點(diǎn): 不被編譯 幾乎可以出現(xiàn)于程序任何位置,23,預(yù)處理宏 #include,預(yù)處理器發(fā)現(xiàn) #include 指令后,尋找中的文件并把文件內(nèi)容包含到當(dāng)前文件中 #include /* 標(biāo)準(zhǔn)輸入輸出設(shè)備 */ 讀取頭文件 stdio.h 的內(nèi)容 stdio.h :包含對(duì)控制臺(tái)和文件的標(biāo)準(zhǔn)I/O函數(shù),24,關(guān)于頭文件(.h),頭文件:包含常量、函數(shù)和其它一些聲明 一些重要的頭文件: stdio.h, ctype.h, math.h, stdlib.h, string.h, time.h 中的文件必須保存在include文件夾中 在gcc

10、中指定附加的include目錄的命令 $ gcc -I directory #include “stdio.h” 首先查找當(dāng)前目錄(包括所有附加的include目錄), 然后才是include目錄,25,返回,變量聲明,變量必須先聲明后使用 變量聲明:類型名 變量(表) int m, n, l; float phi; int 整型 float 浮點(diǎn)型(可以帶有小數(shù)部分的數(shù)) 其他基本數(shù)據(jù)類型 char(字符) short(短整型) double(雙精度浮點(diǎn)型)long(長整型),26,變量初始化,未初始化時(shí),變量被賦予一個(gè)默認(rèn)值 通過賦值運(yùn)算符 “=“ 對(duì)變量進(jìn)行初始化: int n; n =

11、 3; 可以在聲明變量的同時(shí)進(jìn)行初始化: int n = 3; float phi = 3.1415926; 可以一次聲明或初始化多個(gè)變量: int a, b, c = 3, d = 4;,27,函數(shù)原型,函數(shù)也必須先聲明后使用 函數(shù)原型:對(duì)函數(shù)的聲明 int factorial (int); int factorial (int n); 格式:返回值類型 函數(shù)名(參數(shù)聲明表); 注:函數(shù)聲明結(jié)束后要加(半角)分號(hào)“;” 輸入?yún)?shù):局部變量,值由調(diào)用者傳進(jìn)來 返回值:只有一個(gè)返回值 void:表示無返回值或無輸入?yún)?shù) int rand(void);,28,main() 函數(shù)原型,main():

12、C程序的入口點(diǎn) 最簡版本:無輸入,成功時(shí)輸出0,輸出非0值表示出錯(cuò) int main(void); 帶2個(gè)參數(shù)的main():使用命令行參數(shù) int main(int argc, char *argv); (更多關(guān)于char *argv 的知識(shí)以后介紹),29,返回,函數(shù)定義,返回值類型 函數(shù)名(參數(shù)聲明表) 變量聲明; 程序內(nèi)容; 一對(duì)花括號(hào)定義一個(gè)代碼塊 內(nèi)部變量聲明寫在所有語句之前,30,main()函數(shù)定義,/* helloworld.c - Our first C language program Created by Li, 05/08/2016 */ int main(void)

13、/ entry point /* write a message to the console */ puts(“Hello, world!”) ; printf (“n”); return 0; /* exit (0 - successful) */ puts函數(shù):向標(biāo)準(zhǔn)輸出設(shè)備(控制臺(tái)窗口)寫字符串并換行 字符串常量:用雙引號(hào)括起來的字符序列 return 0;成功退出當(dāng)前函數(shù),返回?cái)?shù)值0給調(diào)用者,31,編譯運(yùn)行我們的第一個(gè)程序,保存代碼為helloworld.c文件 運(yùn)行g(shù)cc: -$ gcc Wall helloworld.c o helloworld.o 若編譯過程中不出錯(cuò),則代碼編

14、譯完成 運(yùn)行程序(2種方式): -$ ./helloworld.o OR -$ gdb helloworld.o (gdb) r,32,$ gcc -g -Wall infilename.c o outfilename.o,編譯運(yùn)行我們的第一個(gè)程序,33,第8講 C語言入門,C語言介紹 如何寫一個(gè)C語言程序 我們的第一個(gè)C語言程序 變量和數(shù)據(jù)類型,34,幾個(gè)重要概念,數(shù)據(jù)類型 是一類數(shù)據(jù)實(shí)體的集合,由它定義的數(shù)據(jù)實(shí)體將占內(nèi)存空間 C是一種弱類型語言,允許隱式類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換 運(yùn)算符 指定目標(biāo)內(nèi)容如何被操作(算術(shù)運(yùn)算符、字符串運(yùn)算符) 有一元(+)、二元(+,-)、三元(?: )之分,35

15、,幾個(gè)重要概念,表達(dá)式 編程語言中的表達(dá)式是一個(gè)由數(shù)值、變量、運(yùn)算符、函數(shù)構(gòu)成的語句 變量 變量是有名字的,它被連接或映射到系統(tǒng)內(nèi)存中的數(shù)值,或者是一個(gè)表達(dá)式 示例:int x=0, y=0; y=x+2; x,y 是變量 y=x + 2是一個(gè)表達(dá)式,36,變量聲明,變量聲明的一般格式: 數(shù)據(jù)類型 變量名稱 =值; 示例: char x; /* 未初始化的 */ char x=A;/* 初始化值為A */ char x=A, y=B;/* 多個(gè)變量的初始化 */ char x=y=Z;/* 多個(gè)變量的初始化 */,37,變量與常量,數(shù)據(jù):承載信息的數(shù)字與字符 變量: 在程序運(yùn)行過程中可能被賦值或變化的數(shù)據(jù) 常量: 預(yù)先設(shè)定并在整個(gè)程序運(yùn)行過程中沒有變化的數(shù)據(jù),38,變量命名,命名規(guī)則: 變量名是由字母、數(shù)字、或下劃線“_”組成的序列 變量名的

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論