C++基礎知識匯總_第1頁
C++基礎知識匯總_第2頁
C++基礎知識匯總_第3頁
C++基礎知識匯總_第4頁
C++基礎知識匯總_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息科學與工程學院信息科學與工程學院羅羅 芳芳Email:Email:引引 言言什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源什么是計算機程序設計程序執(zhí)行過程輸入輸出程序程序是什么?怎程序是什么?怎么設計的?么設計的?計算機程序實例二程序實例二程序實例一程序實例一什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源什么是計算機程序設計存放數(shù)據(jù)(數(shù)據(jù)結構)存放數(shù)據(jù)(數(shù)據(jù)結構).內(nèi)存內(nèi)存78a3421操作數(shù)據(jù)(算法)操作數(shù)據(jù)(算法)存放數(shù)據(jù)需要解決的問題:存放數(shù)據(jù)需要解決的問題:1、內(nèi)存單元如何標識

2、?、內(nèi)存單元如何標識?2、存放單元的大小如何確、存放單元的大小如何確定?定?3、多個相關數(shù)據(jù)怎么組織?、多個相關數(shù)據(jù)怎么組織?操作數(shù)據(jù)需要解決的問題:操作數(shù)據(jù)需要解決的問題:1、簡單的數(shù)據(jù)操作有哪些?、簡單的數(shù)據(jù)操作有哪些?2、操作的步驟怎么描述?、操作的步驟怎么描述?3、怎樣確立操作步驟?、怎樣確立操作步驟?程序設計過程什么是計算機程序設計計算機程序設計就是為計算機編制程序的過程。計算機程序設計就是為計算機編制程序的過程。1、明確問題2、確定數(shù)據(jù)結構和算法3、用某種語言進行編程4、測試與調(diào)試即如何組織數(shù)據(jù)和操作數(shù)據(jù)?組織和操作數(shù)據(jù)的方法不同,就有不同的程序設計方法。什么是計算機程序設計程序設

3、計方法程序設計語言本課程學習目標課外資源什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源程序設計方法目前,程序設計方法有兩種:目前,程序設計方法有兩種:1、面向過程的程序設計方法、面向過程的程序設計方法2、面向對象的程序設計方法、面向對象的程序設計方法什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源程序設計方法問題:組織和處理幾個數(shù)據(jù)與組織和處理幾千個數(shù)據(jù)采取的方法是一樣的嗎?程序設計方法面向過程的程序設計方法什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源公司負責人程序設計員以一個公司的運作與管理為例:當公司員工只有幾個人時以一個公司的運

4、作與管理為例:當公司員工只有幾個人時數(shù)據(jù)數(shù)據(jù)(員工員工).子程序(公子程序(公司業(yè)務)司業(yè)務)程序設計方法數(shù)據(jù)數(shù)據(jù).子程序子程序面向過程的程序設計方法圖1.1 面向過程設計方法示意圖什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源 以功能為中以功能為中心、基于功心、基于功能分解能分解 程序程序 = =數(shù)據(jù)結構數(shù)據(jù)結構+ +算法算法程序設計方法面向對象的程序設計方法什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源對象(部門)對象(部門)消息(部消息(部門協(xié)作)門協(xié)作)當公司員工增加到一定數(shù)量以后程序設計方法對象對象消息消息面向對象的程序設計方法圖1.2 面向對

5、象設計方法示意圖什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源 以對象為中心、以對象為中心、基 于 數(shù) 據(jù) 抽 象基 于 數(shù) 據(jù) 抽 象(把數(shù)據(jù)及其操(把數(shù)據(jù)及其操作作為一個整體作作為一個整體構成對象)構成對象) 程序程序 = = 對象對象 + + 對象對象 + + + + 對象對象 對象對象 = = 數(shù)據(jù)數(shù)據(jù) + + 操作操作什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源程序設計語言程序如何能被計算機所接受并執(zhí)行程序如何能被計算機所接受并執(zhí)行,需要程序設計語言來描述。,需要程序設計語言來描述。程序設計語言的分類程序設計語言的分類程序設計語言 u低級語言

6、低級語言 機器語言機器語言匯編語言匯編語言u高級語言高級語言 u 解釋解釋 翻譯翻譯u編譯編譯 詞法分析詞法分析語法分析語法分析代碼優(yōu)化代碼優(yōu)化 代碼生成代碼生成什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源程序設計語言語言模型語言模型任何一種程序設計語言可用下面的模型描述任何一種程序設計語言可用下面的模型描述圖1.3 語言模型什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源程序設計語言C+程序設計語言 高級語言高級語言 面向對象程序設計語言面向對象程序設計語言B B語言語言C C語言語言C+C+語語言言C#C#語語言言圖1.4 C+語言發(fā)展歷程什么是計算

7、機程序設計程序設計方法程序設計語言本課程學習目標課外資源程序設計語言本課程使用的開發(fā)環(huán)境是本課程使用的開發(fā)環(huán)境是Visual C+6.0。Visual C+是是Microsoft公司開發(fā),是基于公司開發(fā),是基于 Windows環(huán)境的可視化集成開發(fā)環(huán)境。環(huán)境的可視化集成開發(fā)環(huán)境。什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源本課程學習目標1、學習、學習C+基本詞法、語法規(guī)則以及基本詞法、語法規(guī)則以及不同的程序設計方法等知識。不同的程序設計方法等知識。2、培養(yǎng)知識運用能力;培養(yǎng)讀寫簡、培養(yǎng)知識運用能力;培養(yǎng)讀寫簡

8、單程序的能力;培養(yǎng)計算思維能力。單程序的能力;培養(yǎng)計算思維能力。什么是計算機程序設計程序設計方法程序設計語言本課程學習目標課外資源課外資源一、參考書籍一、參考書籍1、C + Primer Plus(第第6版版)中文版中文版2、C+程序設計(譚浩強編著)程序設計(譚浩強編著)二、精品網(wǎng)站二、精品網(wǎng)站1、編程中國:http:/ VC知識庫: http:/ http:/ http:/ C+基礎知識基礎知識C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式一個應用程序的開發(fā)過程本章小結導言本章解決的問題:本章解決的問題:C+中有哪些字符?有哪些單詞?數(shù)據(jù)存儲單元如何標識?大小如

9、何確定?對數(shù)據(jù)可執(zhí)行什么樣的操作?C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式一個應用程序的開發(fā)過程本章小結#include /預處理命令預處理命令#define PI 3.14159 /宏定義宏定義float sum(float x); /對對sum函數(shù)作聲明函數(shù)作聲明void main() /主函數(shù)首部主函數(shù)首部 float r,s; /定義變量定義變量r,s coutr; /輸入輸入r的值的值 s=sum(r); /調(diào)用調(diào)用sum函數(shù)函數(shù) coutr=r s= sendl; /輸出輸出r,s的值的值 float sum(float x) /定義定義sum函數(shù)

10、函數(shù) return PI*x*x; /返回函數(shù)值返回函數(shù)值 C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.2 C+程序的基本結構引例1.1 鍵盤輸入圓的半徑,求圓的面積.聲明區(qū)函數(shù)區(qū)聲明區(qū):聲明區(qū):(1)包含文件)包含文件(2)宏定義)宏定義(3)函數(shù)聲明)函數(shù)聲明(4)條件編譯)條件編譯(5)全局變量聲明()全局變量聲明(6)結構體)結構體等的定義等的定義(7)類的定義)類的定義程序的注釋可在任何一個區(qū)內(nèi)插入1.2.1 C+程序結構函數(shù)區(qū):函數(shù)區(qū):(1)由)由1個主函數(shù)個主函數(shù)main()和多個和多個(或(或0個)其他函數(shù)組成。個)其他函數(shù)組

11、成。(2)每個函數(shù)都是由函數(shù)聲明)每個函數(shù)都是由函數(shù)聲明部分與函數(shù)體(函數(shù)的定義)部部分與函數(shù)體(函數(shù)的定義)部分組成。分組成。(3)程序的執(zhí)行從)程序的執(zhí)行從main()函數(shù)函數(shù)開始。開始。(4)函數(shù)聲明部分包括函數(shù)返)函數(shù)聲明部分包括函數(shù)返回值類型、函數(shù)名、函數(shù)的形式回值類型、函數(shù)名、函數(shù)的形式參數(shù)。參數(shù)。(5)函數(shù)體部分是用一對花括)函數(shù)體部分是用一對花括號號括起來的完成該函數(shù)所表達括起來的完成該函數(shù)所表達的功能的語句的集合。的功能的語句的集合。(6)語句可以是數(shù)據(jù)描述語句)語句可以是數(shù)據(jù)描述語句或數(shù)據(jù)操作語句。或數(shù)據(jù)操作語句。1.2 C+程序的基本結構(1)每行一般書寫一條語句(2)每

12、條語句以“;”分號結束(3)使用向右縮進方法表達程序中的層次 結構(4)可使用多行注釋或單行注釋以增 強程序的可讀性1.2.2 程序的書寫格式參見教材P4-5C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程(1)26個小寫字母:az。(2)26個大寫字母:AZ。(3)10個數(shù)字:09。(4)標點和特殊字符:(5)空字符1.4 C+的詞法規(guī)則ASCII為為0的字的字符(符(null:即:即空操作字符空操作字符 ),用作字符串,用作字符串的結束符的結束符1.4.1 C+的字符集組成參見教材P9-10C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與

13、變量運算符與表達式應用程序的開發(fā)過程+ - * / , : ; ? ” | ! # % & ( ) 空格??崭?。1.4 C+的詞法規(guī)則1.4.2 單詞及其構詞規(guī)則l用來命名C+程序中的常量、變量、函 數(shù)、語句標號及類型定義符等。參見教材P101 1、標識符、標識符C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.4 C+的詞法規(guī)則1.4.2 單詞及其構詞規(guī)則l關鍵字(又稱保留字)是被系統(tǒng)定義 了的已具有特定含義的標識符。l系統(tǒng)常見關鍵字見教材P10單詞由若干合法字符組成,常見單詞有:參見教材P102、關鍵字、關鍵字C+程序的基本結構C+的詞

14、法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.4 C+的詞法規(guī)則1.4.2 單詞及其構詞規(guī)則l運算符與操作數(shù)連接組成表達式。單目單目運算符:連接一個操作數(shù)的運算符;雙目雙目運算符:連接兩個操作數(shù)的運算符;三目三目運算符:連接三個操作數(shù)的運算符;參見教材P10單詞由若干合法字符組成,常見單詞有:3、運算符、運算符C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.4 C+的詞法規(guī)則l常量是在程序中不改變的量。C+程序中的常量有:整型常量、浮點型常量、字符常量和字符串常量4種。將在1.6節(jié)中詳細介紹。參見教材P11單詞由若干合法字

15、符組成,常見單詞有:4、常量、常量1.4.2 單詞及其構詞規(guī)則C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.4 C+的詞法規(guī)則l變量是在程序中可以改變的量。某個變量的值被改變后,將一直保持到下一次被改變。變量是一種標識符,其命名完全與標識符相同。將在1.6節(jié)中詳細介紹其特性。參見教材P111.4.2 單詞及其構詞規(guī)則單詞由若干合法字符組成,常見單詞有:5、變量、變量C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.4 C+的詞法規(guī)則l注釋符的作用是在程序中標識注釋信息多行注釋以“/*”開始,以“*/

16、”結束,占據(jù)多行。單行注釋以“/”開始,占據(jù)一行。參見教材P111.4.2 單詞及其構詞規(guī)則單詞由若干合法字符組成,常見單詞有:6 6、注釋符、注釋符C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.4 C+的詞法規(guī)則空格符:常作為單詞與單詞之間的分隔符。逗號(,):多作多個變量或多個參數(shù)之間的分隔符;分號(;):主要用于for語句的for關鍵字后的圓括號內(nèi),作分隔符;冒號(:):用來標識語句標號和開關語句,常用于switch的case關鍵字后。 C+常用的分隔符:參見教材P11C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表

17、達式應用程序的開發(fā)過程1.4.2 單詞及其構詞規(guī)則單詞由若干合法字符組成,常見單詞有:7、分隔符、分隔符1.5 C+基本數(shù)據(jù)類型參見教材P11 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.5 C+基本數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)型符數(shù)據(jù)型符占用字節(jié)占用字節(jié)數(shù)數(shù)基本整型基本整型intint4 4短整型短整型shortshort2 2長整型長整型longlong4 4無符號整型無符號整型unsigned int unsigned int 4 4無符號短整型無符號短整型unsigned unsigned shortshort2 2無符號長整型無

18、符號長整型unsigned longunsigned long4 4單精度實型(單精度實型(有效數(shù)字有效數(shù)字6767位)位)floatfloat4 4雙精度實型(雙精度實型(有效數(shù)字有效數(shù)字15161516位)位)doubledouble8 8字符型字符型charchar1 1C+常用基本數(shù)據(jù)類型參見教材P12 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6 常量與變量1.6.1 常量常量是在程序中不改變的量。uC+程序中有5種常量: 整型常量定義格式:int const 常量名=常量值;例如, int const x=10;x=20;

19、x是整型常量嗎? 整型常量有3種形式:十進制: 123 -35 32767 0八進制: 05 012 01十六進制: 0 x10 0XFF 0 x8? 參見教材P12-13C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1 1、整型常量、整型常量1.6 常量與變量 浮點型常量又稱實型常量,分為十進制數(shù)形式和指數(shù)形式兩種表示方法。(1)十進制數(shù)形式的浮點型常量的書寫格式: .其中小數(shù)點不能省略。如1.2345、1.0、1.、.12345均是合法的浮點型常量。(2)指數(shù)形式的浮點型常量的書寫格式: .EE 其中,指數(shù)形式表示符“E”大小寫均可。.部分允許

20、不含小數(shù)點的,或含小數(shù)點的,必須是整數(shù)。如12E-3、0.1E2、.12345E6、0E0等均是合法的。 參見教材P13C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6.1 常量2 2、浮點型常量、浮點型常量1.6 常量與變量 字符常量是一個用單引號括起來的字符。 單引號是字符常量的定界符,單引號本身表示成。在C+中,字符常量具有整數(shù)值,其值是該字符的ASCII碼。一個字符常量可以與整數(shù)進行加減運算。參見教材P14C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6.1 常量3 3、字符常量、字符常

21、量1.6 常量與變量 雙引號是字符串常量的定界符,雙引號本身表示成“”?!啊笔且粋€空字符串,空字符串中沒有任何有效字符,只有一個字符串結束符。在C+程序中,任何一個字符串常量都有一個結束符,該結束符是ASCII碼值為0的空字符,表示為0。 字符串常量是用雙引號括起來的若干個字符組成的字符序列。例如:“CHINA”。參見教材P14C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6.1 常量4 4、字符串常量、字符串常量1.6 常量與變量轉義字符轉義字符又稱反斜線字符,這些字符常量總是以一個“”開頭,后跟特定的字符來代表某一個特定的ASCII字符。

22、字符形式字符形式功功 能能字符形式字符形式功功 能能aa響鈴符響鈴符00空字符(空字符(NULLNULL)bb退一格退一格 雙引號雙引號ff換頁換頁單引號單引號nn換行換行斜杠斜杠()()rr回車回車dddddd1313位八進制數(shù)所代表的位八進制數(shù)所代表的字符字符vv垂直跳格垂直跳格xhhxhh1212位十六進制數(shù)所代表位十六進制數(shù)所代表的字符的字符tt水平跳格水平跳格補充內(nèi)容C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6.1 常量1.6 常量與變量例如“string”,長度為6,在內(nèi)存中占7個字節(jié)? 以下哪個是字符串?A “house” H

23、ow do you do. $abc求字符串 “mx42tp101qy” 的長度? x42、t、101為轉義字符,字符長度為8C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6.1 常量補充內(nèi)容1.6 常量與變量比較字符常量和字符串常量的不同:(1)表示形式不同。前者用單引號括起來,后者用雙引號括起來。(2)存放它們的對象不同。前者存放在字符變量中,后者存放在字符數(shù)組或字符指針指定的位置。如,char c=A, s5=ABCD;(3)存放字符串常量時要加一個結束符,而存放字符常量則不需要。所以A與“A”不同。且其占用的內(nèi)存空間也不同,A占1個字節(jié)

24、;“A”占2個字節(jié),前一字節(jié)存放字符A,后一字節(jié)存放結束符。(4)對它們進行的運算也不同。字符與字符、字符與整數(shù)間可作加減運算;而字符串只能作連接運算。 參見教材P14C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6.1 常量1.6 常量與變量(1)增強程序的可讀性。標識符可以定義得有意義,如用PI表示圓周率。(2)書寫簡單,不易出錯。有的常量直接書寫很長,容易出錯,如圓周率3.141 592 6用PI代之,既簡單又不容易出錯。(3)修改程序方便。 參見教材P15C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序

25、的開發(fā)過程5 5、符號常量、符號常量1.6.1 常量1.6 常量與變量1.6.2 變量變量是在程序中可以改變的量參見教材P16變量有名字、類型和值三個要素變量的命名規(guī)則與用戶標識符相同C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6 常量與變量1.6.2 變量變量的類型包括存儲類和數(shù)據(jù)類型兩個方面變量的值被改變后,將一直保持到下一次被改變參見教材P16 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程定義變量的格式: ;例如: int x ;int y;或int x,y; char ch; 內(nèi)存表

26、示變量必須先定義后使用。其目的是: 為變量分配存儲空間 規(guī)定變量可適用的運算參見教材P16 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6 常量與變量1.6.2 變量1 1、變量的定義、變量的定義變量的基本數(shù)據(jù)類型有:整型、浮點型和字符型。變量的構造數(shù)據(jù)類型稱自定義類型。它由若干個數(shù)據(jù)類型相同或不相同的變量所構成的類型。如數(shù)組、結構體、共用體、類都是構造數(shù)據(jù)類型。參見教材P17 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6 常量與變量1.6.2 變量2 2、變量的數(shù)據(jù)類型、變量的數(shù)

27、據(jù)類型變量的存儲類定義變量的有效性范圍,即作用域。C+中有4類: 自動存儲類(auto) 寄存器存儲類(register) 靜態(tài)存儲類(static) 外部存儲類(extern)存儲類為存儲類為autoauto稱為稱為動態(tài)變量。動態(tài)變量。動態(tài)變量是在函數(shù)動態(tài)變量是在函數(shù)被調(diào)用執(zhí)行時被調(diào)用執(zhí)行時, ,才才分配單元分配單元, ,隨著函隨著函數(shù)被執(zhí)行而分配數(shù)被執(zhí)行而分配, ,隨著函數(shù)執(zhí)行結束隨著函數(shù)執(zhí)行結束而釋放而釋放,auto,auto關鍵關鍵字可以省略字可以省略寄存器變量是請寄存器變量是請求計算機把此變求計算機把此變量放入量放入CPUCPU的寄存的寄存器內(nèi)器內(nèi), ,但如果沒有但如果沒有寄存器可使

28、用寄存器可使用, ,或或系統(tǒng)不支持此功系統(tǒng)不支持此功能能, ,則此變量等同則此變量等同于動態(tài)變量于動態(tài)變量靜態(tài)變量是在程靜態(tài)變量是在程序編譯連接時就序編譯連接時就分配的內(nèi)存單元分配的內(nèi)存單元, ,在整個程序運行在整個程序運行期間使用固定的期間使用固定的存儲單元存儲單元, ,直到整直到整個程序退出對應個程序退出對應單元才釋放單元才釋放外部變量在所有外部變量在所有函數(shù)和程序段中函數(shù)和程序段中都可引用。生存都可引用。生存期是整個程序,期是整個程序,在程序結束時才在程序結束時才釋放內(nèi)存。釋放內(nèi)存。參見教材P16-17 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程

29、序的開發(fā)過程1.6 常量與變量1.6.2 變量3 3、變量的存儲類(、變量的存儲類(具體使用詳見函數(shù)一章具體使用詳見函數(shù)一章)變量的值是變量三要素之一。可以在定義變量時對變量賦初值(變量初始化),也可以在引用變量時通過其他方法(賦值表達式、cin、scanf函數(shù)等)對變量賦值。變量初始化格式:變量初始化格式:=,=,;例如:static int a=1,b=2;參見教材P17-18 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6 常量與變量1.6.2 變量4 4、變量的值、變量的值外部類和靜態(tài)類變量沒有初始化,則由編譯程序賦以“零值”(數(shù)

30、值型變量賦數(shù)值0,字符型變量賦空字符)。自動類和寄存器類變量不進行初始化,那么它們不具有有意義的值,必須通過賦值后才能引用。例如:例如:int a,b; int a,b; a=b+4; a=b+4;參見教材P18 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6 常量與變量1.6.2 變量4 4、變量的值、變量的值變量有定義和引用兩個方面。變量的定義涉及變量名稱、存儲類和數(shù)據(jù)類型。引用即使用,通常先定義,后使用。引用變量時可通過賦值表達式、cin函數(shù)等方式對變量賦值。參見教材P18 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量

31、與變量運算符與表達式應用程序的開發(fā)過程1.6 常量與變量1.6.2 變量4 4、變量的值、變量的值表達式x=x+1,在數(shù)學中成立嗎?在計算機程序中成立嗎?為什么?深入思考深入思考原因一:數(shù)學公式中的“=”和程序中的含義不一樣。程序中的“=”是賦值的含義。原因二:數(shù)學公式中的變量和程序中的含義不一樣。程序中的變量表示的是存儲單元。結論:用計算機求解問題有別于數(shù)學的方法,要考慮機器的具體狀況。補充內(nèi)容C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.6 常量與變量1.6.2 變量1.7 運算符與表達式C+的表達式包括算術表達式、關系表達式、邏輯表達式、

32、賦值表達式、條件表達式和逗號表達式。參見教材P18 重點C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.1 算術運算符與算術表達式運算運算符符含義含義例例備注備注+ +加加5+2 5+2 7 7- -減減5-2 5-2 3 3* *乘乘5 5* *2 2 10 10/ /除除5/2 5/2 2 2正斜線正斜線%取余取余5%2 5%2 1 1,5%-2 ,5%-2 -1-1只適用于整型數(shù)只適用于整型數(shù)+自增自增y=x+ ; y=x+ ; y=x , x=x+1y=x , x=x+1y=+x ; y=+x ; x=x+1 ,

33、 y=xx=x+1 , y=x適用于整型變量適用于整型變量-自減自減y=x- ; y=x- ; y=x , x=x-1y=x , x=x-1y=-x ; y=-x ; x=x-1 , y=xx=x-1 , y=x適用于整型變量適用于整型變量參見教材P18-20C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程單目運算符的優(yōu)先級高于雙目運算符的優(yōu)先級,雙目運算符中的 *、/、% 的優(yōu)先級高于 +、- 的優(yōu)先級。+(增1)運算可寫在變量前或變量后,分別稱作前綴運算和后綴運算。如果定義一個變量i,前綴運算記為:+i,后綴運算記為:i+。a=+i等同于 i=i

34、+1 a=ia=i+等同于 a=i i=i+1參見教材P19C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.1 算術運算符與算術表達式取余運算只能用于兩個整型數(shù)的運算。功能是求兩個整型數(shù)相除的余數(shù)。用下面的公式:余數(shù)=被除數(shù)-商除數(shù)注意:5%-3=2,而-5%3=-2。程序的運行結果如下:程序的運行結果如下: a=2 b=-2a=2 b=-2例如:取余運算。例如:取余運算。程序代碼如下:程序代碼如下:#include #include using namespace std;using namespace std;voi

35、d main()void main() int a,b; int a,b;a=5%-3;a=5%-3;b=-5%3; b=-5%3; couta=atb=couta=atb=bendl;bendl; 參見教材P19C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.1 算術運算符與算術表達式例如例如, ,#include #include using namespace std;using namespace std;void main()void main() int x,y,z; int x,y,z;x=10;x=10;

36、 y=x+; y=x+; z=+x; z=+x; z=(x+)+(x+)+(x+); z=(x+)+(x+)+(x+);coutx+x+endl;coutx+x+=大于等于大于等于20=20,10=2020=20,10=20同級同級( (高高) ) 大于大于2020,20102020,2010 小于小于2030,20102030,2010=小于等于小于等于20=30,20=1020=30,200時,表達式“x+yx”是永真的。但在用計算機語言判斷關系表達式“x+yx”時,可能會得出不真的結論。這種情況往往出現(xiàn)在x和y兩個數(shù)差別很大,一個很大,另一個則小到了語言表達精度以下,以致這個很小的數(shù)對相

37、加結果不產(chǎn)生影響。 參見教材P20C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.2 關系運算符與關系表達式? 設設a=3,b=5,c=4, a=3,b=5,c=4, 以下關系運算的值是多少?以下關系運算的值是多少?ababa+bb+ca+bb+c(a=3)(b=5)(a=3)(b=5)abaa)(cb)(ba)(cb)參與關系運算的數(shù)據(jù)可以是整型、實型、字符參與關系運算的數(shù)據(jù)可以是整型、實型、字符型數(shù)據(jù)型數(shù)據(jù)補充內(nèi)容C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算

38、符與表達式1.7.2 關系運算符與關系表達式邏輯運算符用于一個或兩個條件是否滿足的判斷參與運算的數(shù)是邏輯值(非零或0), 運算的結果也是邏輯值(1或0)運算符運算符含義含義舉例舉例優(yōu)先級優(yōu)先級! !邏輯非邏輯非!20,!0!20,!0高高&與與20&45,20&020&45,20&0|或或20|0,0|020|0,0|0低低參見教材P21C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.2 關系運算符與關系表達式 與運算當且僅當參與運算的兩個數(shù)都為真時,結與運算當且僅當參與運算的兩個

39、數(shù)都為真時,結果為真,否則為假果為真,否則為假 或運算當參與運算的兩個數(shù)都為假時,結果為假或運算當參與運算的兩個數(shù)都為假時,結果為假,否則為真,否則為真? x0 & x0 & xx0 ( 10 x0 ( ) ) ch=A & ch=A & ch=65 & ch=65 & ch=90補充內(nèi)容C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.2 關系運算符與關系表達式1.7 運算符與表達式1.7.3 邏輯運算符與邏輯表達式邏輯運算的優(yōu)先級!(非)&(與) |(或)邏輯運算

40、符與其他運算符的優(yōu)先級:!算術運算符關系運算符&和|賦值運算符高高低低參見教材P21C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程位運算的對象是二進制數(shù),對二進制數(shù)進行按位運算1100110010101010 1000 1000&1100110010101010 1110 1110| |1100110010101010 0110 0110 00101 00101 00101 0001 0001參見教材P22-23C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.

41、3 邏輯運算符與邏輯表達式1.7 運算符與表達式1.7.5 賦值運算符與賦值表達式基本賦值運算符(1個)= 基本賦值運算符(注意與等號“=”的區(qū)別)參見教材P23-24C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程復合賦值運算符(10個) +=+=、-=-=、* *= =、/=/=、%=%=分別為加、減、乘、除、取余賦值運算符&=&=、=、|=|=分別為按位與、按位異或、按位或賦值運算符=分別為位左移、右移賦值運算符賦值表達式的一般形式為: = 例如:int a,b,c;int w;w=56;a=b=c=1; /該表達式值為1,變量

42、a、b、c的值為1參見教材P24C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.5 賦值運算符與賦值表達式復合賦值運算符由賦值號“=”前加上其他運算符構成例如:a+=3等價于 a=a+3x*=y+8等價于 x=x*(y+8)功能:是右側表達式的值與左側變量先進行“=”前的運算符的計算,再賦給左邊的變量。參見教材P24C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式1.7.5 賦值運算符與賦值表達式1.7 運算符與表達式C+只有一個三目運算符。三目條件表達式

43、格式如下:運算時先對第一個表達式進行檢驗,如果為真,取表達式2的值;為假,取表達式3的值。 例如: a=(b0)?b:-b; 當b0時,a=b;當b=0時,a=-b;1.7.6 三目運算符與三目表達式參見教材P25C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式用逗號串聯(lián)起來的若干個表達式稱為逗號表達式。 , , , 各表達式按從左至右順序執(zhí)行, 并將最后一個表達式的值作為整個逗號表達式的值。1.7.7 逗號運算符與逗號表達式例如: b=1,c=2,d=3;則逗號表達式: a=4+4,b=ba=4+4,b=b* *b+c,d=d

44、b+c,d=d* *a+b;a+b;其求值過程為:先將8賦給a,再將3賦給b,最后一個表達式d=3*8+3=27,整個逗號表達式的值為27.參見教材P26C+程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程取內(nèi)容運算符:*1.7 運算符與表達式指針運算實際上是地址運算。指針運算有兩個運算符1.7.8 指針運算運算符 & 后跟變量名或數(shù)組元素,后面不能跟常量、表達式或數(shù)組名。功能是取變量的地址。&a、&b分別表示取變量a、b的地址值。運算符 * 后跟一個地址值(包括地址表達式值),表示取一個地址中存放的數(shù)據(jù)。參見教材P26-27C+

45、程序的基本結構C+的詞法規(guī)則 C+基本數(shù)據(jù)類型常量與變量運算符與表達式應用程序的開發(fā)過程1.7 運算符與表達式運算符的優(yōu)先級和結合性是確定表達式計算順序的重要依據(jù)。1.7.9 運算符的優(yōu)先級和結合性(1)():圓括號,用于改變優(yōu)先級,圓括號內(nèi)的 部分首先計算。(2):數(shù)組元素的下標運算符或數(shù)組大小定 義運算符,其內(nèi)的部分首先計算。(3). 和-:用于結構體、共用體變量。(4)sizeof:計算一數(shù)據(jù)類型或一表達式占用 內(nèi) 存的字節(jié)數(shù)。例如,sizeof(int) 或 sizeof()(5)強制類型:作用于一表達式,使表達式的 類型強制性轉換為指定類型。例如,int a=1, b=2;cout(int)(a+b+1.234567)endl;參見教材P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論