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

下載本文檔

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

文檔簡介

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

2、 指針內(nèi)存、數(shù)組 外部標(biāo)準(zhǔn)庫I/O等 編譯為本機代碼 宏預(yù)處理機,程序設(shè)計基礎(chǔ),3,C 語言標(biāo)準(zhǔn),1972 發(fā)明C語言 1978 The C Programming Language 出版(首個標(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)級編程 操作系統(tǒng),如Linux、Windows 微控制器:汽車、飛機 嵌入式處理器:電話、便攜式電子設(shè)備 DSP處理器:數(shù)字音頻與電視系統(tǒng) ,5,C 與其他編程語言,較近的

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

4、礎(chǔ),8,使用C語言的7個步驟,9,1.,2.,3.,4.,5.,6.,7.,分析程序目標(biāo),設(shè)計程序,編寫代碼,編譯,運行程序,調(diào)試程序,修改和維護程序,在哪里編寫代碼? 怎么編譯、調(diào)試、運行?,.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 文件擴展名 然后在gedit中直接編輯代碼,12,Ubuntu下gcc程序編譯,保存為.o 文件擴展名 編譯器:gcc( C語言最權(quán)威的Lnixu編譯器),13,關(guān)于gcc的幾點說明,運行 gcc: $ gcc -Wall infilename.c o outfilename.o -Wall:激活編譯器的報警功能 支持更復(fù)雜的編譯格式 多源文件 附加路徑 優(yōu)化、庫鏈接 eg:嵌入調(diào)試信息,不進行代碼優(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 - 在特定行(行號)設(shè)置斷點 break file: linenumber - 在file中的特定行設(shè)置斷點 run或r- 執(zhí)行該程序 c - 繼續(xù)執(zhí)行 next- 執(zhí)行程序下一行 step- 執(zhí)行程序下一行,遇到函數(shù)則進入函數(shù)內(nèi)部執(zhí)行 quit或q- 退出gdb print expression - 輸出指定表達式的當(dāng)前值 help command

7、 - 獲取命令名為command的內(nèi)部幫助,16,gdb命令行調(diào)試器,17,IDE 集成開發(fā)環(huán)境,Integrated Development Enviroment,簡稱IDE 集代碼編輯器、編譯器、調(diào)試工具于一體 適用于大型項目開發(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ū),編譯 鏈接 運行 調(diào)試 斷點,編譯、運行調(diào)試指令區(qū),第8講

8、 C語言入門,C語言介紹 如何寫一個C語言程序 我們的第一個C語言程序 變量和數(shù)據(jù)類型,20,我們的C程序: “Hello, Everyone”,掌握 .c 文件結(jié)構(gòu) 基礎(chǔ)語法 注釋 宏指令 基本聲明* main()函數(shù)及其函數(shù)結(jié)構(gòu) 標(biāo)準(zhǔn)控制臺輸入輸出,如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、注釋一行: / 注釋多行: /*/ 作用:提高代碼的可讀性 特點: 不被編譯 幾乎可以出現(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 :包含對控制臺和文件的標(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 浮點型(可以帶有小數(shù)部分的數(shù)) 其他基本數(shù)據(jù)類型 char(字符) short(短整型) double(雙精度浮點型)long(長整型),26,變量初始化,未初始化時,變量被賦予一個默認值 通過賦值運算符 “=“ 對變量進行初始化: int n; n =

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

12、C程序的入口點 最簡版本:無輸入,成功時輸出0,輸出非0值表示出錯 int main(void); 帶2個參數(shù)的main():使用命令行參數(shù) int main(int argc, char *argv); (更多關(guān)于char *argv 的知識以后介紹),29,返回,函數(shù)定義,返回值類型 函數(shù)名(參數(shù)聲明表) 變量聲明; 程序內(nèi)容; 一對花括號定義一個代碼塊 內(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è)備(控制臺窗口)寫字符串并換行 字符串常量:用雙引號括起來的字符序列 return 0;成功退出當(dāng)前函數(shù),返回數(shù)值0給調(diào)用者,31,編譯運行我們的第一個程序,保存代碼為helloworld.c文件 運行g(shù)cc: -$ gcc Wall helloworld.c o helloworld.o 若編譯過程中不出錯,則代碼編

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

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

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論