




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C程序設(shè)計基礎(chǔ)C語言概述1程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)-面向?qū)ο蠹懊嫦驅(qū)ο蠹癈+實現(xiàn)實現(xiàn) C程序設(shè)計基礎(chǔ)C語言概述2第一章第一章 C+C+語言概述語言概述C程序設(shè)計基礎(chǔ)C語言概述3目標目標 理解程序設(shè)計的概念 掌握C+程序的開發(fā)過程 掌握C+的運算符和表達式 掌握C+的數(shù)據(jù)類型,包括基本數(shù)據(jù)類型和構(gòu)造數(shù)據(jù)類型 熟練掌握基本控制語句的使用:if、switch、while、dowhile、for 掌握轉(zhuǎn)向語句:break、contiune語句的使用 熟練掌握函數(shù)的使用C程序設(shè)計基礎(chǔ)C語言概述41.1 面向?qū)ο蟪绦蛟O(shè)計入門面向?qū)ο蟪绦蛟O(shè)計入門 1.1.1 程序設(shè)計與程序設(shè)計語言程序設(shè)計與程序設(shè)計語言 1
2、.1.2 簡單的簡單的C+程序程序 1.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序 1.1.4 VC+集成開發(fā)環(huán)境集成開發(fā)環(huán)境C程序設(shè)計基礎(chǔ)C語言概述51.1.1 程序設(shè)計與程序設(shè)計語言程序設(shè)計與程序設(shè)計語言 程序設(shè)計也是一門工程設(shè)計,它是根據(jù)要解決的問題,使用某種程序設(shè)計語言,設(shè)計出能夠完成這一任務(wù)的計算機指令序列。 程序設(shè)計語言是人與計算機進行交流的一種形式語言,是人利用計算機分析文問題、解決問題的一個基本工具。 C程序設(shè)計基礎(chǔ)C語言概述61.1.2 簡單的簡單的C+程序程序/*源文件名:Ch1_01.cpp功能:給出矩形的寬和高,計算矩形的周長和面積,使用結(jié)構(gòu)化方法實現(xiàn)*/# includ
3、e void main()int width,height,girth,area;cout widthheight;/輸入兩個數(shù)據(jù) girth= (width+height)*2; /計算矩形周長area= width*height; /計算矩形面積cout矩形:寬= width 高= heightendl; /輸出數(shù)據(jù)cout周長= girthendl; cout面積=areaendl; C程序設(shè)計基礎(chǔ)C語言概述71.1.2 簡單的簡單的C+程序程序程序運行后,屏幕顯示:請輸入矩形的寬和高:20 15 (用戶輸入)矩形:寬=20 高=15周長=70面積=300C程序設(shè)計基礎(chǔ)C語言概述81.1
4、.2 簡單的簡單的C+程序程序程序結(jié)構(gòu)分析:(1)“/*/” 是程序的注釋部分,注釋內(nèi)容是為增加程序的可讀性,系統(tǒng)不編譯注釋內(nèi)容,自動忽略從“/*”到“*/”之間的內(nèi)容。 C+中以“/”開頭直到本行結(jié)束的部分也是注釋。與“/*/”的區(qū)別在于只能注釋一行,不能跨行,這種注釋也稱為行注釋,“/*/”注釋可以跨行,稱為塊注釋。 C程序設(shè)計基礎(chǔ)C語言概述91.1.2 簡單的簡單的C+程序程序(2)#include 是一條編譯預處理命令,聲明該程序要使用iostream.h文件中的內(nèi)容,iostream.h文件中包含了輸入cin和輸出cout 的定義。編譯時系統(tǒng)將頭文件iostream.h中的內(nèi)容嵌入到
5、程序中該命令位置。 C程序設(shè)計基礎(chǔ)C語言概述101.1.2 簡單的簡單的C+程序程序(3)程序中定義了一個主函數(shù)main(),其中main是函數(shù)名,void表示該函數(shù)返回值類型。程序執(zhí)行從主函數(shù)開始。(4)函數(shù)體中聲明變量的語句是: “int width,height,girth,area;” ,通知系統(tǒng)為變量分配存儲空間。 (5)函數(shù)體中的其他語句用于完成相應功能,是函數(shù)體的重要組成部分。 C程序設(shè)計基礎(chǔ)C語言概述111.1.2 簡單的簡單的C+程序程序書寫格式,盡量遵循以下基本原則:(1)一般情況下一行只寫一條語句。短語句可以一行寫多條,長語句可以分成多行來寫。分行原則是不能將一個單詞分開
6、,用雙引號括起來的字符串最好也不要分開。(2)C+程序書寫時要盡量提高可讀性。為此,采用適當?shù)乜s進格式書寫程序是非常必要的,表示同一類內(nèi)容或同一層次的語句要對齊。(3)C+程序中大括號使用較多,其書寫方法也較多,建議用戶要養(yǎng)成使用大括號的固定風格。 C程序設(shè)計基礎(chǔ)C語言概述121.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序 C+源程序要經(jīng)過編輯、編譯、連接、運行4個環(huán)節(jié),才能產(chǎn)生輸出結(jié)果。 編輯 編譯 連接 運行 源程序 Ch1_01.cpp 目標程序 Ch1_01.obj 可執(zhí)行程序 Ch1_01.exe 結(jié)果 出現(xiàn)錯誤 結(jié)果錯誤 結(jié)束 C程序設(shè)計基礎(chǔ)C語言概述131.1.3 創(chuàng)建和運行創(chuàng)建和
7、運行C+程序程序1. 編輯編輯是在一定的環(huán)境下進行程序的輸入和修改過程。2. 編譯編輯好的源程序不能被計算機理解,源程序必須經(jīng)過編譯,生成計算機能夠識別的機器代碼。編譯階段要進行詞法分析和語法分析,又稱源程序分析。 C程序設(shè)計基礎(chǔ)C語言概述141.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序3. 連接編譯后生成的目標代碼還不能直接在計算機上運行,其主要原因是編譯器對每個源程序文件分別進行編譯,如果一個程序有多個源程序文件,編譯后這些源程序文件還分布在不同的地方。 4. 運行一個C+源程序經(jīng)過編譯和連接后生成了可執(zhí)行文件后,就可以在Windows環(huán)境下直接雙擊該文件運行該程序,也可以在Visual
8、C+ 6.0的集成開發(fā)環(huán)境下運行。C程序設(shè)計基礎(chǔ)C語言概述151.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序C+程序的上機實現(xiàn)過程:(1)啟動Visual C+ 6.0用戶可以單擊“開始”菜單,在“程序”選項中選擇“Microsoft Visual Studio 6.0”級聯(lián)菜單下的“Microsoft Visual C+6.0”,或在桌面上雙擊“Microsoft Visual C+6.0”的快捷方式,就會啟動Visual C+ 6.0。C程序設(shè)計基礎(chǔ)C語言概述161.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序(2)在“文件”菜單下,選擇“新建”命令,將彈出“新建”對話框 選擇“工程”標簽下的“
9、Win32 Console Application”選項,可創(chuàng)建一個基于控制臺應用程序的工程; 在“工程”編輯欄內(nèi)輸入創(chuàng)建的工程名稱(CH1_01); 在“位置”編輯欄內(nèi)輸入工程的保存位置(E:student),確保單選按鈕“R創(chuàng)建新工作區(qū)”被選定, 其它選項選擇默認值,單擊“確定”按鈕將彈出“Win32 Console Applition”項目步驟對話框。C程序設(shè)計基礎(chǔ)C語言概述171.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序(3)在項目步驟對話框中,選擇要創(chuàng)建應用程序的類型,共有4個選項: “An empty project.”(一個空工程) “A simple application.”
10、(一個簡單應用程序) “A ”Hello,World“ application.”(一個“世界,你好”應用程序) “An application that support MFC.”(一個支持MFC的應用程序)。 例中選擇第1個選項,創(chuàng)建一個空工程。 C程序設(shè)計基礎(chǔ)C語言概述181.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序(4)單擊“確定”按鈕,創(chuàng)建空工程的工作結(jié)束,回到Visual C+ 6.0的集成開發(fā)環(huán)境。至此,系統(tǒng)為工程CH1_01自動創(chuàng)建了E:studentCH1_01文件夾,并在其中生成了CH1_01.dsp、CH1_01.dsw、CH1_01.ncb和Debug文件夾。C程序設(shè)計
11、基礎(chǔ)C語言概述191.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序(5)在“文件”菜單下,選擇“新建”命令,在出現(xiàn)的對話框中選擇“文件”標簽,選擇“C+ Source File”選項,創(chuàng)建一個C+源程序。然后在“文件”編輯欄內(nèi)輸入創(chuàng)建的C+源程序名(如CH1_01);在“目錄”編輯欄內(nèi)輸入C+源程序的保存位置(如e:studentCH1_01)。C程序設(shè)計基礎(chǔ)C語言概述201.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序(6)單擊“確定”按鈕即可進入代碼編輯窗口 ,代碼輸入完畢后,單擊“文件”菜單中的“保存”命令,或直接單擊工具欄上的“保存”工具按鈕,保存C+源程序,文件名為CH1_01.cpp。(7
12、)選擇“編譯”菜單下的“編譯CH1_01.cpp”項或單擊微型編譯工具欄中的“編譯程序”工具按鈕,對C+源程序CH1_01.cpp進行編譯。如果編譯有錯誤,需要回到程序編輯窗口重新編輯,直到?jīng)]有錯誤為止。 C程序設(shè)計基礎(chǔ)C語言概述211.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序(8)編譯完成后,選擇命令:“編譯”|“構(gòu)建 CH1_01.exe”或單擊微型編譯工具欄中的“構(gòu)建程序”工具按鈕,如果沒有連接錯誤,將生成可執(zhí)行文件CH1_01.exe。 (9)用戶可以在Windows環(huán)境下直接用鼠標雙擊CH1_01.exe文件,或者單擊微型編譯工具欄中的“執(zhí)行程序”工具按鈕,都可以執(zhí)行程序。C程序設(shè)計
13、基礎(chǔ)C語言概述221.1.3 創(chuàng)建和運行創(chuàng)建和運行C+程序程序程序運行后,將彈出一個窗體要求用戶輸入兩個整數(shù),從鍵盤輸入60和40,中間用空格分隔,回車。屏幕顯示程序的運行結(jié)果。C程序設(shè)計基礎(chǔ)C語言概述231.1.4 VC+集成開發(fā)環(huán)境集成開發(fā)環(huán)境Visual C+ 6.0是微軟公司開發(fā)的可視化的C+集成開發(fā)環(huán)境。它是集程序代碼的編輯、編譯、連接、調(diào)試等功能為一體,以一種方便、友好的界面提供給用戶。C程序設(shè)計基礎(chǔ)C語言概述241.1.4 VC+集成開發(fā)環(huán)境集成開發(fā)環(huán)境1菜單欄菜單欄下面是一些最常用的菜單:(1)文件:用于創(chuàng)建、打開、關(guān)閉、保存一個新的文件、工程或工作區(qū)程。(2)編輯:用于文件的
14、編輯,如文件的復制、粘貼、查找等操作。(3)查看:用于打開、激活所需要的各種窗口,如工作區(qū)窗口、輸出窗口、屬性窗口等。(4)插入:用于創(chuàng)建新的資源和類等。(5)工程:用于向工程中添加文件、設(shè)置活動工程、工程屬性等。(6)編譯:用于程序的編譯、構(gòu)建、調(diào)試、運行、工程和配置等。(7)工具:用于選擇或定制集成開發(fā)環(huán)境中的一些工具、宏操作等。(8)窗口:用于窗口的排列、拆分、隱藏或顯示等。(9)幫助:提供幫助文件和關(guān)于等。C程序設(shè)計基礎(chǔ)C語言概述251.1.4 VC+集成開發(fā)環(huán)境集成開發(fā)環(huán)境2工具欄工具欄通過工具欄,可以快速地使用常見的菜單選項。最常見的工具欄是標準工具欄。3工作區(qū)窗口工作區(qū)窗口工作區(qū)
15、窗口有ClassView(類視圖)、ResourceView(資源視圖)和(文件視圖)三個標簽頁,分別用來查看當前工程所包含的所有類、資源和文件。 C程序設(shè)計基礎(chǔ)C語言概述261.1.4 VC+集成開發(fā)環(huán)境集成開發(fā)環(huán)境(1)ClassView(類視圖),用于顯示當前工作區(qū)工程的類,全局變量和函數(shù)。(2)(文件視圖):標簽頁用于顯示當前工程的源文件、頭文件、資源文件等 。C程序設(shè)計基礎(chǔ)C語言概述271.1.4 VC+集成開發(fā)環(huán)境集成開發(fā)環(huán)境4輸出窗口輸出窗口有多個標簽頁,最常用的是“編譯”。在編譯、連接、運行過程中顯示系統(tǒng)提供的有關(guān)信息,如出錯信息等。C程序設(shè)計基礎(chǔ)C語言概述281.2 數(shù)據(jù)類型
16、和表達式數(shù)據(jù)類型和表達式 1.2.1 基本語法成分基本語法成分 1.2.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 1.2.3 變量和常量變量和常量 1.2.4 運算符和表達式運算符和表達式 1.2.5 數(shù)組類型數(shù)組類型 1.2.6 結(jié)構(gòu)體和共用體結(jié)構(gòu)體和共用體 1.2.7 指針和引用指針和引用C程序設(shè)計基礎(chǔ)C語言概述291.2.1 基本語法成分基本語法成分 計算機語言是人與計算進行交流的工具,它也有嚴格的字符集和嚴密的語法規(guī)則。 C+語言的基本要素是字符集,由字符集中的若干字符按照一定的語法規(guī)則組成C+程序中各種成分。下面介紹字符集、標識符和關(guān)鍵字。 C程序設(shè)計基礎(chǔ)C語言概述301.2.1 基本語法成分基
17、本語法成分1. 字符集C+語言的字符集包括:(1)大小寫英文字母:AZ,az(2)數(shù)字:09(3)特殊字符:空格 ! # % & * _(下劃線) + = / ; , ( ) C程序設(shè)計基礎(chǔ)C語言概述311.2.1 基本語法成分基本語法成分2. 標識符 標識符是用戶用來標識程序中函數(shù)名,類型名、常量名、變量名、對象名等實體而定義的單詞。C+語言中標識符的命名規(guī)則如下:(1)識符是由英文字母(包括大寫和小寫)、數(shù)字和下劃線組成,并且以字母和下劃線開始,其后跟零個或多個字母、數(shù)字或下劃線。注意:標識符不可以數(shù)字開始。(2)標識符區(qū)分大、小寫字母。例如,Aa和aa是兩個不同的標識符。(3)標
18、識符的長度是任意的,但有的編譯系統(tǒng)僅能識別前32個字符。(4)標識符不能和C+語言的關(guān)鍵字同名。C程序設(shè)計基礎(chǔ)C語言概述321.2.1 基本語法成分基本語法成分3. 關(guān)鍵字關(guān)鍵字是C+系統(tǒng)用于特殊用途的單詞。下面列舉一些C+中常用的關(guān)鍵字: auto break bool case char class const continueC程序設(shè)計基礎(chǔ)C語言概述331.2.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 數(shù)據(jù)類型 基本數(shù)據(jù)類型 整 型 基本整型 短整型 長整型 字符型 浮點型 單精度型 雙精度型 布爾型 空類型 構(gòu)造數(shù)據(jù)類型 數(shù)組 指針類型 結(jié)構(gòu)體 類 共用體 C程序設(shè)計基礎(chǔ)C語言概述341.2.2
19、基本數(shù)據(jù)類型基本數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型說明說明占字節(jié)數(shù)占字節(jié)數(shù)范圍范圍bool布爾型布爾型true,falsechar(signed char)字符型字符型1-128127unsigned char無符號字符型無符號字符型10255short(signed short)短整型短整型2-3276832767unsigned short無符號短整型無符號短整型2065535int(signed int)基本整型基本整型4-21474836482147483647unsigned int無符號整型無符號整型404294967295long(signed long)長整型長整型4-214748364
20、82147483647unsigned long 無符號長整型無符號長整型404294967295float單精度型單精度型4-3.410-383.41038double雙精度型雙精度型8-1.710-3081.710308C程序設(shè)計基礎(chǔ)C語言概述351.2.3 變量和常量變量和常量1. 常量(1)整型常量整型常量即整型常數(shù),沒有小數(shù)部分,可以用十進制、八進制和十六進制3種形式來表示。(2)浮點型常量浮點型常量又稱實型常量,是由整數(shù)部分和小數(shù)部分組成的,只能用十進制表示。浮點型常量有兩種表示方法:小數(shù)表示法和科學計數(shù)法。(3)字符常量C+中有兩種字符常量,即一般字符常量和轉(zhuǎn)義字符常量。C程序設(shè)
21、計基礎(chǔ)C語言概述361.2.3 變量和常量變量和常量(4)字符串常量字符串常量是用一對雙引號括起來的字符序列。(5)符號常量在C+中,可以用一個標識符來表示一個常量,這個標識符就是符號常量。 C程序設(shè)計基礎(chǔ)C語言概述371.2.3 變量和常量變量和常量 C+語言提供了兩種定義符號常量的方法: 用const語句定義符號常量 用#define語句定義符號變量C程序設(shè)計基礎(chǔ)C語言概述381.2.3 變量和常量變量和常量2. 變量 變量是指在程序運行過程中其值可以變化的量。 C+中變量使用前必須先定義。變量的定義 變量定義的一般格式為: 數(shù)據(jù)類型 變量名1,變量名2, 變量賦值與初始化 在使用已定義的
22、變量前,要保證變量存儲的是確定的值。 C程序設(shè)計基礎(chǔ)C語言概述391.2.4 運算符和表達式運算符和表達式 C+中常見的表達式有:算術(shù)表達式關(guān)系表達式邏輯表達式條件表達式賦值表達式C程序設(shè)計基礎(chǔ)C語言概述401.2.4 運算符和表達式運算符和表達式 使用運算符時,要注意以下幾點:(1)運算符實現(xiàn)的功能。(2)操作數(shù)個數(shù)及類型。(3)運算符的優(yōu)先級別。即多個運算符同時出現(xiàn)在同一個表達式時,先進行優(yōu)先級高的運算,后作優(yōu)先級低的運算。(4)運算符的結(jié)合性。 C程序設(shè)計基礎(chǔ)C語言概述411.2.4 運算符和表達式運算符和表達式 常用的運算符和表達式:1. 算術(shù)運算符及算術(shù)表達式 C+中的算術(shù)運算符有:
23、+(取正或加)、(取負或減)、*(乘)、(除)、%(取余)、+(增1)、-(減1)。其中+(取正)、(取負)、+(增1)、-(減1)是單目運算符,其余是雙目運算符。C程序設(shè)計基礎(chǔ)C語言概述421.2.4 運算符和表達式運算符和表達式2. 關(guān)系運算符及關(guān)系表達式 關(guān)系運算是比較兩個操作數(shù)的大小,其結(jié)果是一個布爾型的值。當兩個操作數(shù)滿足關(guān)系運算符指定的關(guān)系時,表達式的值為true,否則為false。 在C+中,關(guān)系運算符都是雙目運算符,共有6個:(小于)、(大于)、(大于或等于)、= =(等于)、!=(不等于)。其中前4種和后2種屬于不同的優(yōu)先級,前4種的優(yōu)先級高于后2種。 C程序設(shè)計基礎(chǔ)C語言概
24、述431.2.4 運算符和表達式運算符和表達式3. 邏輯運算符及邏輯表達式 邏輯運算符共有3個:1個單目運算符!(邏輯求反),2個雙目運算符&(邏輯與)和|(邏輯或)。其中邏輯與的優(yōu)先級比邏輯或高。 邏輯運算的結(jié)果是邏輯值。參與邏輯運算的操作數(shù)可以是任一基本類型的數(shù)據(jù),在進行判斷時,系統(tǒng)將非零值作為真,零為假。C程序設(shè)計基礎(chǔ)C語言概述441.2.4 運算符和表達式運算符和表達式4. 賦值運算符和賦值表達式 C+中的賦值運算符分為兩種: 簡單賦值運算符( “=” ) 復合賦值運算符(+=、=、*=、/=、%=、=、&=、=、|=。 )。 賦值運算符都是二元運算符、右結(jié)合。由賦值運
25、算符和操作數(shù)組成的表達式稱為賦值表達式。C程序設(shè)計基礎(chǔ)C語言概述451.2.4 運算符和表達式運算符和表達式5. 位運算符 C+提供了6個位運算符:(按位求反)、&(按位與)、|(按位或)、(按位異或)、(左移位)。其中(按位求反)是單目運算符,其余都是雙目運算符。 位運算符是對其操作數(shù)按二進制形式逐位進行運算,參與運算的操作數(shù)都應為整數(shù),不能是實型數(shù)。 C程序設(shè)計基礎(chǔ)C語言概述461.2.4 運算符和表達式運算符和表達式6. 條件運算符 條件運算符“?:”是C+中唯一的一個三目運算符,其使用的一般形式為: 表達式1?表達式2:表達式3C程序設(shè)計基礎(chǔ)C語言概述471.2.4 運算符和表
26、達式運算符和表達式7. 逗號運算符 由逗號運算符構(gòu)成的表達式稱為逗號表達式,其一般形式為: 表達式1,表達式2,表達式n 逗號表達式的執(zhí)行規(guī)則是從左到右,逐個表達式執(zhí)行,最后一個表達式的值是該逗號表達式的值。 注意:逗號運算符“,”的優(yōu)先級最低。 C程序設(shè)計基礎(chǔ)C語言概述481.2.4 運算符和表達式運算符和表達式8. 表達式中數(shù)據(jù)類型的轉(zhuǎn)換(1) 自動轉(zhuǎn)換(2)強制轉(zhuǎn)換其一般形式為: 數(shù)據(jù)類型(表達式)或 (數(shù)據(jù)類型)表達式double float long unsigned int char,short 圖圖 1-17 自動轉(zhuǎn)換示意圖自動轉(zhuǎn)換示意圖 C程序設(shè)計基礎(chǔ)C語言概述491.2.5
27、數(shù)組類型數(shù)組類型 1. 一維數(shù)組 定義一維數(shù)組的一般格式為: 長度 例如:int A100表示數(shù)組名為A,該數(shù)組有100個元素,數(shù)組元素的類型為整型。 C程序設(shè)計基礎(chǔ)C語言概述501.2.5 數(shù)組類型數(shù)組類型 在定義一維數(shù)組時要注意以下幾點:(1)數(shù)據(jù)類型是指數(shù)組元素的類型。(2)數(shù)組名的命名規(guī)則要遵循C+關(guān)于標識符的命名規(guī)則。(3)數(shù)組元素的下從0開始到長度減1,C+對數(shù)組下標越界不做檢查。(4)必須說明數(shù)組的長度,且這個長度要用一個確定的正整數(shù)常量或常量表達式來表示。 C程序設(shè)計基礎(chǔ)C語言概述511.2.5 數(shù)組類型數(shù)組類型2. 二維數(shù)組 二維數(shù)組定義的一般形式為: 長度長度 例如:int
28、 a43就定義了一個二維數(shù)組a,其數(shù)據(jù)元素為 a00、a01a43。 引用二維數(shù)組元素的格式為: 例如:int a23; C程序設(shè)計基礎(chǔ)C語言概述521.2.5 數(shù)組類型數(shù)組類型3.字符數(shù)組 字符數(shù)組是一個字符類型的數(shù)組,它用來存放字符或字符串,其中每一個數(shù)組元素對應一個字符。 字符數(shù)組定義的格式為:char 數(shù)組名長度;C程序設(shè)計基礎(chǔ)C語言概述531.2.6 結(jié)構(gòu)體和共用體結(jié)構(gòu)體和共用體1.結(jié)構(gòu)體 由數(shù)目固定的成員構(gòu)成,各成員可以具有不同的數(shù)據(jù)類型。一個結(jié)構(gòu)變量在內(nèi)存占有一片連續(xù)的存儲空間 C+中結(jié)構(gòu)體定義的一般語法形式為:struct 結(jié)構(gòu)體名 類型 成員1; 類型 成員2; 類型 成員n
29、;; C程序設(shè)計基礎(chǔ)C語言概述541.2.6 結(jié)構(gòu)體和共用體結(jié)構(gòu)體和共用體 結(jié)構(gòu)體是一種特殊的數(shù)據(jù)類型,結(jié)構(gòu)體的定義僅僅是給出了該結(jié)構(gòu)體的組成情況,它和基本數(shù)據(jù)類型int、double等一樣,系統(tǒng)并不為其分配實際的存儲單元。為了使用它,必須定義結(jié)構(gòu)體變量。 結(jié)構(gòu)體變量聲明的一般格式如下:結(jié)構(gòu)體 結(jié)構(gòu)體變量;或結(jié)構(gòu)體 結(jié)構(gòu)體變量;C程序設(shè)計基礎(chǔ)C語言概述551.2.6 結(jié)構(gòu)體和共用體結(jié)構(gòu)體和共用體 結(jié)構(gòu)體變量初始化的一般格式為:struct 結(jié)構(gòu)體名 結(jié)構(gòu)體變量名=初值; 或結(jié)構(gòu)體名 結(jié)構(gòu)體變量名=初值; 結(jié)構(gòu)體成員引用的一般格式為: 結(jié)構(gòu)體變量.成員名 其中,符號“.”是成員運算符,用于訪問一
30、個結(jié)構(gòu)體變量中的某個結(jié)構(gòu)體成員。 C程序設(shè)計基礎(chǔ)C語言概述561.2.6 結(jié)構(gòu)體和共用體結(jié)構(gòu)體和共用體共用體共用體 共用體同結(jié)構(gòu)體一樣,也是一種自定義的數(shù)據(jù)類型,由若干數(shù)據(jù)成員組成。雖然共用體與結(jié)構(gòu)體有很多相似之處,但兩者還是有本質(zhì)區(qū)別的。在任一時刻,結(jié)構(gòu)體中的所有成員都是有意義的,而共用體中只有一個成員有意義。這種不同反映到存儲空間分配上就是結(jié)構(gòu)體變量各成員順序存放在一段內(nèi)存中,每個成員分別占有自己的內(nèi)存單元,結(jié)構(gòu)體變量所占存儲空間的大小等于其所有數(shù)據(jù)成員所占存儲空間的總和。而共用體變量的各成員均從同一地址開始存放,共同占用同一存儲空間,即各成員所占用的存儲空間是相互覆蓋的。 C程序設(shè)計基礎(chǔ)
31、C語言概述571.2.6 結(jié)構(gòu)體和共用體結(jié)構(gòu)體和共用體 共用體定義的一般形式為:union 共用體名數(shù)據(jù)類型 成員1;數(shù)據(jù)類型 成員2;數(shù)據(jù)類型 成員n; 共用體類型變量說明的一般語法形式為: 共用體 共用體變量名; C程序設(shè)計基礎(chǔ)C語言概述581.2.7 指針和引用指針和引用1. 指針的基本概念 C+程序中定義變量,在編譯時系統(tǒng)為每一個變量分配內(nèi)存空間。 。所謂指針就是一個存儲單元的地址值,用來存放地址(即指針)的變量也稱指針變量。 指針是一個變量,必須先聲明后使用。指針變量聲明的一般形式如下:數(shù)據(jù)類型 * 標識符; C程序設(shè)計基礎(chǔ)C語言概述591.2.7 指針和引用指針和引用 與指針有關(guān)的
32、基本運算符有以下兩個:(1)取地址運算符&:&變量名。用來獲取變量的首地址。(2)間接訪問運算符*:*指針變量名。也稱“指向運算符”或“取內(nèi)容運算符”,表示訪問該指針變量所指向的變量的值,即訪問指針所指向的存儲單元的內(nèi)容。 C程序設(shè)計基礎(chǔ)C語言概述601.2.7 指針和引用指針和引用2. 指針的賦值 如果用戶聲明了一個指針變量,在使用該指針變量之前必須對它賦初值。否則,在程序中使用該指針變量就有可能導致系統(tǒng)崩潰。 例如:int i,*p1=&i;int *p2=p1;C程序設(shè)計基礎(chǔ)C語言概述611.2.7 指針和引用指針和引用3. 指針的運算 指針是一個變量,其值是一個
33、地址。因此,它只能參與賦值、算術(shù)及關(guān)系運算。(1)算術(shù)運算 (2)關(guān)系運算 兩個指針進行關(guān)系運算時,它們必須指向同一連續(xù)存儲空間。 C程序設(shè)計基礎(chǔ)C語言概述621.2.7 指針和引用指針和引用4. 多級指針 由于指針是一個變量,在內(nèi)存中占據(jù)一定的存儲空間,具有一個地址,這個地址也可以利用指針來保存。 聲明二級指針的格式為: 數(shù)據(jù)類型 * 標識符 C程序設(shè)計基礎(chǔ)C語言概述631.2.7 指針和引用指針和引用5. 指針與數(shù)組 在C+語言中,指針與數(shù)組之間存在著密切的關(guān)系。它們都可以處理內(nèi)存中連續(xù)存放的一系列數(shù)據(jù),數(shù)組和指針在訪問內(nèi)存時采用相同的計算方法,在某些場合下指針和數(shù)組的表現(xiàn)形式具有相同的意
34、義。使用下標法對內(nèi)存中的數(shù)組元素進行處理,指針和數(shù)組表現(xiàn)形式具有相同的意義,因為指針和數(shù)組名都是地址量。 C程序設(shè)計基礎(chǔ)C語言概述641.2.7 指針和引用指針和引用6. 指針與字符串 在C+語言中,字符串用字符數(shù)組來處理,有時也把字符串稱為字符數(shù)組。例如:char str1=Hello World!;char *pstr=str;coutpstr6endl; /輸出W字符C程序設(shè)計基礎(chǔ)C語言概述651.2.7 指針和引用指針和引用7. 內(nèi)存動態(tài)分配 C+語言提供了內(nèi)存動態(tài)分配的方法。所謂內(nèi)存動態(tài)分配是指在程序運行期間根據(jù)實際需要申請內(nèi)存空間,并在不需要時釋放,它是一種在程序運行時動態(tài)申請和釋
35、放內(nèi)存的技術(shù)。使用運算符new和delete進行內(nèi)存動態(tài)分配和釋放,相應地把內(nèi)存的申請和釋放過程稱作創(chuàng)建和刪除。 C程序設(shè)計基礎(chǔ)C語言概述661.2.7 指針和引用指針和引用(1)運算符new 運算符new用于申請所需的內(nèi)存空間。它的一般格式如下: * = new ; 動態(tài)創(chuàng)建數(shù)組的一般格式如下: * = new 數(shù)據(jù)類型長度;C程序設(shè)計基礎(chǔ)C語言概述671.2.7 指針和引用指針和引用(2)運算符delete 當程序中不再需要使用運算符new申請到的內(nèi)存空間時,必須要使用運算符delete來釋放空間。一般操作形式如下: delete 指針名; /釋放非數(shù)組內(nèi)存單元delete 指針名; /釋
36、放數(shù)組內(nèi)存單元 C程序設(shè)計基礎(chǔ)C語言概述681.2.7 指針和引用指針和引用8.引用 在C+語言中,提供了一種為變量起一個別名的機制,這個別名就是引用。聲明引用的一般格式如下:數(shù)據(jù)類型 &引用名=變量名; 或數(shù)據(jù)類型 &引用名(變量名); C程序設(shè)計基礎(chǔ)C語言概述691.2.7 指針和引用指針和引用 使用引用應注意以下幾點:(1)聲明引用時,必須要初始化。(2)一旦為一個變量聲明了一個引用,該引用就不能再作為其它變量的引用。(3)引用和其所代表的變量使用同一片存儲空間,它并不另外占用存儲空間。(4)對引用的操作就是對被引用變量的操作。C程序設(shè)計基礎(chǔ)C語言概述701.3 程序控制
37、結(jié)構(gòu)程序控制結(jié)構(gòu) 1.3.1 語句語句 1.3.2 選擇語句選擇語句 1.3.3 循環(huán)語句循環(huán)語句 1.3.4 轉(zhuǎn)向語句轉(zhuǎn)向語句 C程序設(shè)計基礎(chǔ)C語言概述711.3.1 語句語句 C+支持結(jié)構(gòu)化程序設(shè)計,結(jié)構(gòu)化程序有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。表達式語句空語句復合語句C程序設(shè)計基礎(chǔ)C語言概述721.3.2 選擇語句選擇語句1. if語句 if語句用來有條件地執(zhí)行某一語句系列。if語句主要有以下幾種形式:(1)if(表達式) 語句; C程序設(shè)計基礎(chǔ)C語言概述731.3.2 選擇語句選擇語句(2)if(表達式) 語句1;else 語句2; (3)if(表達式1) else if(表
38、達式2) else if(表達式3) elseif(表達式n) else C程序設(shè)計基礎(chǔ)C語言概述741.3.2 選擇語句選擇語句2. switch語句 在if語句嵌套使用時,如果嵌套層數(shù)太多,將使程序變得難于理解。為此,C+語言提供了switch語句來簡化這一過程。 switch語句又稱開關(guān)語句,其一般語法格式為:switch(表達式)case 常量表達式1:語句1;case 常量表達式2:語句2;case 常量表達式n:語句n;default:語句n+1; C程序設(shè)計基礎(chǔ)C語言概述751.3.3 循環(huán)語句循環(huán)語句1. while循環(huán)語句while循環(huán)語句的語法格式為:while(表達式)
39、循環(huán)體語句; 表達式 循環(huán)體 真 假 圖圖 1-19 while 循環(huán)執(zhí)行過程循環(huán)執(zhí)行過程 C程序設(shè)計基礎(chǔ)C語言概述761.3.3 循環(huán)語句循環(huán)語句2. do-while循環(huán)語句do-while循環(huán)語句的語法形式為: do 循環(huán)體語句; while(表達式); 表達式 循環(huán)體 真 假 圖圖 1-20 do-while 循環(huán)執(zhí)行過程循環(huán)執(zhí)行過程 C程序設(shè)計基礎(chǔ)C語言概述771.3.3 循環(huán)語句循環(huán)語句3. for循環(huán)語句 for循環(huán)語句比while循環(huán)語句和do-while循環(huán)語句功能更為強大。for循環(huán)語句的一般語法格式為:for(表達式1;表達式2;表達式3) 循環(huán)體語句;C程序設(shè)計基礎(chǔ)C語
40、言概述781.3.3 循環(huán)語句循環(huán)語句 在使用for循環(huán)語句時,注意以下幾種情況:(1)for語句中的3個表達式可以沒有。但每個表達式后的分號不能省略。此時for循環(huán)語句的形式為:for(;) 這時在循環(huán)體內(nèi)必須有其他控制循環(huán)執(zhí)行的語句,否則會形成死循環(huán)。(2)表達式1如果不存在或不是用來給循環(huán)變量賦初值,則應在for語句前給循環(huán)變量賦初值。(3)表達式2如果不存在,則在for語句循環(huán)體內(nèi)應有其他控制循環(huán)執(zhí)行的語句,否則會形成死循環(huán)。(4)表達式3如果不存在或不是用來修改循環(huán)變量的值,則應在for語句循環(huán)體內(nèi)設(shè)置相應的語句。C程序設(shè)計基礎(chǔ)C語言概述791.3.4 轉(zhuǎn)向語句轉(zhuǎn)向語句 1. got
41、o語句 goto語句一般語法格式為: goto 語句標號;2. break語句 break語句的一般語法格式如下: break;3. continue語句 continue語句的一般語法格式為: continue;C程序設(shè)計基礎(chǔ)C語言概述801.4 函數(shù)函數(shù) 1.4.1 函數(shù)的定義和說明函數(shù)的定義和說明 1.4.2 函數(shù)的調(diào)用函數(shù)的調(diào)用 1.4.3 函數(shù)的參數(shù)函數(shù)的參數(shù) 1.4.4 函數(shù)的嵌套調(diào)用和遞歸調(diào)用函數(shù)的嵌套調(diào)用和遞歸調(diào)用 1.4.5 作用域和存儲類型作用域和存儲類型 1.4.6 內(nèi)聯(lián)函數(shù)內(nèi)聯(lián)函數(shù) 1.4.7 函數(shù)重載函數(shù)重載 1.4.8 字符串處理函數(shù)字符串處理函數(shù)C程序設(shè)計基礎(chǔ)C語
42、言概述811.4.1 函數(shù)的定義和說明函數(shù)的定義和說明 函數(shù)定義的一般語法格式如下:函數(shù)類型 函數(shù)名(參數(shù)表) 函數(shù)體; C+最重要的特征之一是函數(shù)原型。 函數(shù)原型的說明一般語法格式為:類型 函數(shù)名(參數(shù)列表);C程序設(shè)計基礎(chǔ)C語言概述821.4.2 函數(shù)的調(diào)用函數(shù)的調(diào)用1. 函數(shù)調(diào)用的概念 函數(shù)調(diào)用是用一個表達式來表示的。其調(diào)用的一般格式為:函數(shù)名(實參列表) 要求實參與形參的個數(shù)相同、類型一致、順序一致。 C程序設(shè)計基礎(chǔ)C語言概述831.4.2 函數(shù)的調(diào)用函數(shù)的調(diào)用 函數(shù)的返回值是在被調(diào)用函數(shù)中,通過返回語句return來實現(xiàn)的。返回語句return有兩個重要的作用:其一是使函數(shù)立即返回到
43、其主調(diào)程序,其二是返回某個值。 函數(shù)有兩種返回情況,一種是無返回值,一種是有返回值。當函數(shù)無返回值時,函數(shù)類型必須用關(guān)鍵字void加以說明。 C程序設(shè)計基礎(chǔ)C語言概述841.4.3 函數(shù)的參數(shù)函數(shù)的參數(shù)1. 傳值調(diào)用 這種方法是用參數(shù)傳遞數(shù)據(jù)的最常用的方法。傳值調(diào)用是指函數(shù)調(diào)用時,給形參分配存儲空間,系統(tǒng)計算實參表達式的值,并把實參的值按順序賦給對應的形式參數(shù),即對形參進行初始化,然后執(zhí)行函數(shù)體。 C程序設(shè)計基礎(chǔ)C語言概述851.4.3 函數(shù)的參數(shù)函數(shù)的參數(shù)2. 傳址調(diào)用 使用傳址調(diào)用方式時,形參是指針變量,實參是地址值,由主調(diào)程序向被調(diào)用函數(shù)傳遞地址。在函數(shù)調(diào)用時,把實參數(shù)地址賦給形式參數(shù),
44、形參和實參都表示同一地址中的值。因此,形參所指向內(nèi)容的任何改變都會導致實參所指向內(nèi)容的改變。 C程序設(shè)計基礎(chǔ)C語言概述861.4.3 函數(shù)的參數(shù)函數(shù)的參數(shù)3. 引用調(diào)用 引用也是一種特殊類型的變量,它不同于指針。引用是為程序中變量取一個別名,引用作為函數(shù)的參數(shù)時,形參是實參的引用,則形參和實參指的是同一個變量,在函數(shù)調(diào)用中對形參的改變實際上就是對實參的改變。 C程序設(shè)計基礎(chǔ)C語言概述871.4.4 函數(shù)的嵌套調(diào)用和遞歸調(diào)用函數(shù)的嵌套調(diào)用和遞歸調(diào)用1. 函數(shù)的嵌套調(diào)用 程序從主函數(shù)開始執(zhí)行,遇到函數(shù)調(diào)用時,如果函數(shù)是有參函數(shù),C+先進行實參對形參的替換,然后執(zhí)行被調(diào)用函數(shù)的函數(shù)體。如果函數(shù)體中還
45、調(diào)用其他函數(shù),再轉(zhuǎn)入執(zhí)行其他函數(shù)體。函數(shù)體執(zhí)行完畢后,返回到主調(diào)函數(shù),繼續(xù)執(zhí)行主調(diào)函數(shù)中的后續(xù)程序行。若在一個函數(shù)中又調(diào)用另一個函數(shù),則稱這樣的調(diào)用過程為函數(shù)的嵌套調(diào)用 C程序設(shè)計基礎(chǔ)C語言概述881.4.4 函數(shù)的嵌套調(diào)用和遞歸調(diào)用函數(shù)的嵌套調(diào)用和遞歸調(diào)用2. 函數(shù)的遞歸調(diào)用 在調(diào)用一個函數(shù)的過程中出現(xiàn)直接或間接調(diào)用該函數(shù)本身,稱作函數(shù)的遞歸調(diào)用。這樣的函數(shù)稱為遞歸函數(shù)。編寫遞歸函數(shù)時,必須有終止遞歸調(diào)用的條件。C程序設(shè)計基礎(chǔ)C語言概述891.4.5 作用域和存儲類型作用域和存儲類型1. 作用域 作用域是一個標識符在程序中有效范圍。C+的作用域有函數(shù)原型作用域、塊作用域、函數(shù)作用域和文件作用
46、域。 函數(shù)原型參數(shù)列表中的標識符具有函數(shù)原型作用域。函數(shù)原型只需要參數(shù)的類型,并不需要參數(shù)名。參數(shù)名只在函數(shù)原型聲明的兩個圓括號內(nèi)有效。C程序設(shè)計基礎(chǔ)C語言概述901.4.5 作用域和存儲類型作用域和存儲類型 塊作用域又稱局部作用域。在一個復合語句內(nèi)聲明的標識符具有塊作用域,其作用域是從聲明處開始,一直到復合語句結(jié)束的花括號為止。由于函數(shù)體在句法上可以看作一個復合語句,所以函數(shù)中聲明的標識符具有塊作用域。另外函數(shù)的形參也屬于塊作用域。C程序設(shè)計基礎(chǔ)C語言概述911.4.5 作用域和存儲類型作用域和存儲類型2. 局部變量和全局變量 局部變量具有局部作用域。局部變量僅在定義它的函數(shù)或類內(nèi)起作用,在這個范圍之外不能使用這些變量。 全局變量是在函數(shù)和類外部定義的變量。全局變量的作用域從說明點開始直到文件的結(jié)束。這種作用域也稱為文件作用域。C程序設(shè)計基礎(chǔ)C語言概述921.4.5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息系統(tǒng)項目管理師跨行業(yè)經(jīng)驗的分享與啟示試題及答案
- 新生兒護理錯誤觀念辨析試題及答案
- 全方位覆蓋的圖書管理員考試試題及答案
- 2024年藥師考試難點克服試題及答案
- 烽火校招測評試題及答案
- 第一單元兩位數(shù)乘兩位數(shù)(基礎(chǔ)卷)(含解析)-2024-2025學年三年級數(shù)學下冊常考易錯題(蘇教版)
- 知識分享在稅務(wù)行業(yè)中的重要性試題及答案
- 2024-2025學年福建省三明市重點中學高三第四次月考(4月)物理試題物理試題
- 圍繞病人需求的初級藥師試題及答案
- 2025-2030中國電子互連焊料行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2023年江蘇信息職業(yè)技術(shù)學院高職單招(數(shù)學)試題庫含答案解析
- 量化投資-統(tǒng)計套利
- GB/T 25074-2010太陽能級多晶硅
- GB/T 23842-2009無機化工產(chǎn)品中硅含量測定通用方法還原硅鉬酸鹽分光光度法
- GB/T 11047-2008紡織品織物勾絲性能評定釘錘法
- GB 18245-2000煙草加工系統(tǒng)粉塵防爆安全規(guī)程
- 特種陶瓷介紹課件
- 海水淡化簡介課件
- 有機物污染(環(huán)境化學)課件
- 安全生產(chǎn)培訓合格證書樣本
- 繪制軸承座三視圖課件
評論
0/150
提交評論