第2章C++基礎(chǔ)_第1頁
第2章C++基礎(chǔ)_第2頁
第2章C++基礎(chǔ)_第3頁
第2章C++基礎(chǔ)_第4頁
第2章C++基礎(chǔ)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 第第2章章 C+基礎(chǔ)基礎(chǔ) 2.1.1 C+的產(chǎn)生的產(chǎn)生 C+是美國貝爾實(shí)驗(yàn)室于是美國貝爾實(shí)驗(yàn)室于1980年開發(fā)出來年開發(fā)出來的一種過程性與面向?qū)ο笮越Y(jié)合的程序設(shè)計(jì)的一種過程性與面向?qū)ο笮越Y(jié)合的程序設(shè)計(jì)語言。最初他把這種新的語言叫做語言。最初他把這種新的語言叫做“含類的含類的C”,到到1983年才取名為年才取名為C+。 2.1.2 C+的特點(diǎn)的特點(diǎn) (1) C+保持與保持與C兼容。兼容。 (2) 用用C+編寫的程序可讀性更好編寫的程序可讀性更好,代碼結(jié)構(gòu)更為合理代碼結(jié)構(gòu)更為合理,可直接地在程序中映射問題空間的結(jié)構(gòu)??芍苯拥卦诔绦蛑杏成鋯栴}空間的結(jié)構(gòu)。 (3) 生成代碼的質(zhì)量高生成代碼的質(zhì)量高,

2、運(yùn)行效率僅比匯編語言代碼運(yùn)行效率僅比匯編語言代碼段慢段慢10%到到20%。 (4) 從開發(fā)時(shí)間、費(fèi)用到形成的軟件的可重用性、可從開發(fā)時(shí)間、費(fèi)用到形成的軟件的可重用性、可擴(kuò)充性、可維護(hù)性和可靠性等方面有了很大的提高擴(kuò)充性、可維護(hù)性和可靠性等方面有了很大的提高,使得大中型的程序開發(fā)項(xiàng)目變得容易的多。使得大中型的程序開發(fā)項(xiàng)目變得容易的多。 (5) 支持面向?qū)ο蟮臋C(jī)制支持面向?qū)ο蟮臋C(jī)制,可方便地構(gòu)造出模擬現(xiàn)實(shí)可方便地構(gòu)造出模擬現(xiàn)實(shí)問題的實(shí)體和操作。問題的實(shí)體和操作。 2.2.1 一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的C+示例程序示例程序例例2.1 兩數(shù)相加兩數(shù)相加/*/最簡(jiǎn)單的方式最簡(jiǎn)單的方式#include void

3、 main()int a,b,sum;cinab;sum=a+b;couta與與b的和為的和為sumendl;*/例例2.1 兩數(shù)相加兩數(shù)相加/標(biāo)準(zhǔn)形式標(biāo)準(zhǔn)形式#include int add(int ,int);/函數(shù)原型說明函數(shù)原型說明void main()/主函數(shù)主函數(shù)int x,y,sum;/定義定義3個(gè)整型變量個(gè)整型變量coutenter two numbers:xy;/從鍵盤輸入變量的值從鍵盤輸入變量的值sum=add(x,y);/調(diào)用調(diào)用add函數(shù)函數(shù)coutthe sum is:sumendl;/輸出兩個(gè)數(shù)的和輸出兩個(gè)數(shù)的和sum的值的值int add(int a,int b)

4、/定義定義add函數(shù)函數(shù),函數(shù)值為整型函數(shù)值為整型int c;/定義一個(gè)整型變量定義一個(gè)整型變量c=a+b;/計(jì)算兩個(gè)數(shù)的和計(jì)算兩個(gè)數(shù)的和return c;/將將c的值返回的值返回,通過通過add帶回調(diào)用處帶回調(diào)用處 類的聲明部分類的聲明部分 面向?qū)ο蟪绦蛎嫦驅(qū)ο蟪绦?類的使用部分類的使用部分例例2.2 2.2 典型的典型的C+C+程序結(jié)構(gòu)程序結(jié)構(gòu)#include#include/ / 類的聲明部分類的聲明部分class A class A int x,y,z; / int x,y,z; /類類A A的數(shù)據(jù)成員聲明的數(shù)據(jù)成員聲明 fun() / fun() /類類A A的成員函數(shù)聲明的成員函數(shù)

5、聲明 ;/ / 類的使用部分類的使用部分 int main() int main() A a; / A a; / 創(chuàng)建一個(gè)類創(chuàng)建一個(gè)類A A的對(duì)象的對(duì)象a a a.fun(); / a.fun(); / 給對(duì)象給對(duì)象a a發(fā)消息發(fā)消息, ,調(diào)用成員函數(shù)調(diào)用成員函數(shù)fun()fun() return 0; return 0; C+語言是一種高級(jí)程序設(shè)計(jì)語言,它的開發(fā)過程與其他高級(jí)語言程序開發(fā)過程類似,一般要經(jīng)過四個(gè)步驟:u編輯u編譯u鏈接u執(zhí)行l(wèi)編輯編輯是指把按照C+語法規(guī)則編寫的程序代碼通過編輯器(Borland C+,Visual ,Turbo C0)輸入計(jì)算機(jī),并存盤。在存盤時(shí),C+源文件

6、的擴(kuò)展名為.CPP。 在在Windos下下,常用常用Visual C+開發(fā)環(huán)境開發(fā)環(huán)境,來編來編輯、編譯和運(yùn)行輯、編譯和運(yùn)行C+程序。程序。 l編譯編譯將編輯好的C+源程序通過編譯器轉(zhuǎn)換為目標(biāo)文件(OBJ文件)。即生成該源文件的目標(biāo)代碼。 l鏈接鏈接 將用戶程序生成的多個(gè)目標(biāo)代碼文件(.obj)和系統(tǒng)提供的庫文件(.lib)中的某些代碼連接在一起,生成一個(gè)可執(zhí)行文件(.exe)。l執(zhí)行執(zhí)行把生成的可執(zhí)行文件運(yùn)行,在屏幕上顯示運(yùn)行結(jié)果。用戶可以根據(jù)運(yùn)行結(jié)果來判斷程序是否出錯(cuò)。l 基本數(shù)據(jù)類型和表達(dá)式l 運(yùn)算符與表達(dá)式l 程序的基本控制結(jié)構(gòu)C+語言程序由以下基本部分組成。1. 函數(shù)函數(shù)一個(gè)C+程序

7、是由若干個(gè)函數(shù)構(gòu)成的。函數(shù)分為庫函數(shù)(標(biāo)準(zhǔn)函數(shù))和自定義函數(shù)。庫函數(shù)一般是由系統(tǒng)提供的。一個(gè)完整的C+語言程序只有一個(gè)主函數(shù)。2. 預(yù)處理命令預(yù)處理命令預(yù)處理命令以位于行首的符號(hào)“#”開始,C+提供的預(yù)處理有宏定義命令、文件包含命令和條件編譯命令三種。 3. 程序語句程序語句一條完整的語句必須以分號(hào)“;”結(jié)束。程序語句有如下幾類:(1)說明語句)說明語句用來說明變量的類型和初值。如下面語句是把變量說明為浮點(diǎn)數(shù)。float a,b,c;又如下面語句是把變量sum說明為整型變量,并賦初值為零。int sum=0;(2)表達(dá)式語句)表達(dá)式語句由一個(gè)表達(dá)式構(gòu)成一個(gè)語句,用以描述算術(shù)運(yùn)算、邏輯運(yùn)算、或產(chǎn)

8、生某種特定動(dòng)作,在任何表達(dá)式最后加一個(gè)分號(hào)“;”就構(gòu)成了一個(gè)語句。(3)程序控制語句)程序控制語句用來描述語句的執(zhí)行條件與執(zhí)行順序的語句,C+語言的控制語句有9種,如下頁所示。其語句中的括號(hào)( )表示其中是條件,表示內(nèi)嵌的語句。 (4)復(fù)合語句)復(fù)合語句復(fù)合語句是一種十分重要的語句,由大括號(hào)和把一些說明和語句組合在一起,使它們?cè)谡Z法上等價(jià)于一個(gè)簡(jiǎn)單語句;可由若干簡(jiǎn)單語句或復(fù)合語句組成。(5)函數(shù)調(diào)用語句)函數(shù)調(diào)用語句函數(shù)調(diào)用語句是由一次函數(shù)調(diào)用加一個(gè)分號(hào)而構(gòu)成的一個(gè)語句。例如:max(x,y);(6)空語句)空語句空語句:;即只有分號(hào)“;”的語句,什么也不做。C+主要引進(jìn)面向?qū)ο髾C(jī)制,包括類、

9、對(duì)象、派生類、繼主要引進(jìn)面向?qū)ο髾C(jī)制,包括類、對(duì)象、派生類、繼承、多態(tài)等概念和語言機(jī)制,使之成為面向?qū)ο蟪绦蛟O(shè)承、多態(tài)等概念和語言機(jī)制,使之成為面向?qū)ο蟪绦蛟O(shè)計(jì)語言,它在傳統(tǒng)的非面向?qū)ο蠓矫?,?jì)語言,它在傳統(tǒng)的非面向?qū)ο蠓矫妫珻+對(duì)對(duì)C做了一做了一些補(bǔ)充。些補(bǔ)充。2.3.1 注釋與續(xù)行注釋與續(xù)行1、注釋、注釋 以下兩條語句等價(jià)以下兩條語句等價(jià): x=y+z; /* This is a comment */ x=y+z; /This is a comment注注:1)以)以/開始的注釋只在本行起作用,當(dāng)注釋內(nèi)容為多行時(shí)用開始的注釋只在本行起作用,當(dāng)注釋內(nèi)容為多行時(shí)用/*/2)/*/方式的注釋不能

10、嵌套,但可以嵌套方式的注釋不能嵌套,但可以嵌套/方式的注釋方式的注釋2、過長(zhǎng)的語句可用續(xù)行符、過長(zhǎng)的語句可用續(xù)行符“”,如:,如:couthexxndecxnoctx”配套使用配套使用,Cout為輸出和為輸出和“x”用戶從鍵盤中輸入的數(shù)值自動(dòng)轉(zhuǎn)換為變量用戶從鍵盤中輸入的數(shù)值自動(dòng)轉(zhuǎn)換為變量x的類型,并存入變量的類型,并存入變量x內(nèi);內(nèi);l允許允許“cinabc” 的寫法,它按書寫順序從鍵盤的寫法,它按書寫順序從鍵盤上提取所要求的數(shù)據(jù),并存入對(duì)應(yīng)的變量。兩個(gè)數(shù)據(jù)上提取所要求的數(shù)據(jù),并存入對(duì)應(yīng)的變量。兩個(gè)數(shù)據(jù)間用空白符(空格、回車或間用空白符(空格、回車或Tab鍵分開);鍵分開);lCout 和和c

11、in輸出輸入數(shù)據(jù)時(shí)使用缺省的格式,也可以對(duì)輸出輸入數(shù)據(jù)時(shí)使用缺省的格式,也可以對(duì)輸入和輸出進(jìn)行控制。輸入和輸出進(jìn)行控制。lCout的輸出中可以用的輸出中可以用“n”和和“endl”作為換行控制作為換行控制符。符。例例#include void write (char *);void main()char name20;coutname;coutnamen;/操作符操作符dec/hex/oct的使用的使用int x=25;couthexxndecxnoctxendl;/函數(shù)原型的說明函數(shù)原型的說明write (how are you);void write (char * s)couts;C+中

12、變量聲明比較靈活中變量聲明比較靈活,允許在代碼塊中任何地方允許在代碼塊中任何地方說明說明,因此可以在需要時(shí)才聲明因此可以在需要時(shí)才聲明.但仍然要符合但仍然要符合”先先定義后使用定義后使用”的規(guī)定的規(guī)定.float fun(int x,int y) / 對(duì)形參直接進(jìn)行說明對(duì)形參直接進(jìn)行說明 for (int i=0;i10;i+) / 對(duì)循環(huán)變量對(duì)循環(huán)變量i進(jìn)行說明進(jìn)行說明 int sum=0; / 循環(huán)體內(nèi)也可對(duì)變量循環(huán)體內(nèi)也可對(duì)變量sum進(jìn)行說明進(jìn)行說明 sum=sum+i; coutsum=sum; int z=0; / 使用變量使用變量z時(shí)才說明它時(shí)才說明它 z=x+y; 例如例如:en

13、um booleFALSE,TRUE;struct string char * str; int length;union number int i; float f;C+在中在中, 定義變量時(shí)定義變量時(shí),可以說明為可以說明為:boole done;string str;number x;u必須為每一個(gè)函數(shù)建立原型必須為每一個(gè)函數(shù)建立原型,說明函數(shù)的名稱、參數(shù)類型說明函數(shù)的名稱、參數(shù)類型與個(gè)數(shù)與個(gè)數(shù),以及函數(shù)返回值的類型。以及函數(shù)返回值的類型。u目的是讓目的是讓C+編譯程序進(jìn)行類型檢查(即形參與實(shí)參的類編譯程序進(jìn)行類型檢查(即形參與實(shí)參的類型匹配檢查),以及返回值是否與原型相符,維護(hù)程序型匹配

14、檢查),以及返回值是否與原型相符,維護(hù)程序的正確性。的正確性。u語法:返回類型語法:返回類型 函數(shù)名(參數(shù)表)函數(shù)名(參數(shù)表);u函數(shù)的原型必須出現(xiàn)在函數(shù)的調(diào)用語句前。函數(shù)的原型必須出現(xiàn)在函數(shù)的調(diào)用語句前。 例例 函數(shù)原型的說明函數(shù)原型的說明。 #include void write(char *s); / 函數(shù)原型的說明 void main() write(Hello,world!); void write(char *s) couts; C+中一般用中一般用const取代取代C中的中的#define ,消除,消除#define的不的不安全性安全性例例2.6 #define的不安全性的不安全

15、性 #include main() int a=1; #define T1 a+a #define T2 T1-T1 cout T2 is T2endl; return 0; 例例2.7 用用const取代取代#define。 #include int main() int a=1; const T1=a+a; const T2=T1-T1; cout T2 isT2endl; return 0; 輸出輸出:T2 is 0 (1) 指向常量的指針指向常量的指針是指是指:一個(gè)指向常量的指針變量。一個(gè)指向常量的指針變量。例如例如: const char* pc=abcd; / 聲明指向常量的指針聲

16、明指向常量的指針 (2) 常指針常指針是指是指:把指針本身把指針本身,而不是它指向的對(duì)象聲而不是它指向的對(duì)象聲明為常量。例如明為常量。例如: char* const pc=abcd; / 常指針常指針 (3) 指向常量的常指針指向常量的常指針是指是指:這個(gè)指針本身不能改變這個(gè)指針本身不能改變,它所指向的值也不能改變。要聲明一個(gè)指向常量的它所指向的值也不能改變。要聲明一個(gè)指向常量的常指針常指針,二者都要聲明為二者都要聲明為const。例如。例如: const char* const pc=abcd;/指向常量的常指針指向常量的常指針lVoid作為指針的類型時(shí)表示不確定的類型作為指針的類型時(shí)表示不

17、確定的類型l可以聲明可以聲明void類型指針類型指針,但不能聲明但不能聲明void類型的變量類型的變量lVoid型指針是一種通用指針型指針是一種通用指針,任何類型的指針值可以賦給任何類型的指針值可以賦給void類型類型的指針變量的指針變量;已獲值的已獲值的void型指針型指針,如果要使用如果要使用(如輸出如輸出),則必須再進(jìn)則必須再進(jìn)行類型轉(zhuǎn)換行類型轉(zhuǎn)換.(如下例如下例)例例2.8 void型指針的使用。型指針的使用。#include void main()void* pc; int i=456;char c=a;pc=&i;cout*(int* )pcendl;/ 對(duì)PC進(jìn)行轉(zhuǎn)換pc

18、=&c;cout*(char*)pcendl;lInline 標(biāo)志標(biāo)志l當(dāng)程序調(diào)用帶當(dāng)程序調(diào)用帶inline的函數(shù)時(shí)的函數(shù)時(shí),編譯器將函數(shù)體插入到調(diào)編譯器將函數(shù)體插入到調(diào)用該函數(shù)的語句之前用該函數(shù)的語句之前,程序運(yùn)行時(shí)不再進(jìn)行函數(shù)調(diào)用程序運(yùn)行時(shí)不再進(jìn)行函數(shù)調(diào)用.l內(nèi)聯(lián)函數(shù)可消除函數(shù)調(diào)用時(shí)的系統(tǒng)開銷內(nèi)聯(lián)函數(shù)可消除函數(shù)調(diào)用時(shí)的系統(tǒng)開銷,提高運(yùn)行速度提高運(yùn)行速度例例2.9 內(nèi)聯(lián)函數(shù)的使用內(nèi)聯(lián)函數(shù)的使用#include inline double circle(double r) / 內(nèi)聯(lián)函數(shù)內(nèi)聯(lián)函數(shù) return 3.1416*r*r; int main() for (int i=1;i=3

19、;i+) coutr=i area= circle(i)endl; return 0;關(guān)于內(nèi)聯(lián)函數(shù)的幾點(diǎn)說明關(guān)于內(nèi)聯(lián)函數(shù)的幾點(diǎn)說明:u內(nèi)聯(lián)函數(shù)在第一次調(diào)用之前必須進(jìn)行聲明和內(nèi)聯(lián)函數(shù)在第一次調(diào)用之前必須進(jìn)行聲明和定義定義(函數(shù)前一定要加函數(shù)前一定要加inline)u內(nèi)聯(lián)函數(shù)體一般不能有循環(huán)語句和開關(guān)語句內(nèi)聯(lián)函數(shù)體一般不能有循環(huán)語句和開關(guān)語句u類結(jié)構(gòu)中所在在類說明體內(nèi)定義的函數(shù)都是類結(jié)構(gòu)中所在在類說明體內(nèi)定義的函數(shù)都是內(nèi)聯(lián)函數(shù)內(nèi)聯(lián)函數(shù).u內(nèi)聯(lián)是用空間換時(shí)間內(nèi)聯(lián)是用空間換時(shí)間,因此一般只將較短的因此一般只將較短的函數(shù)定義為內(nèi)聯(lián)函數(shù)函數(shù)定義為內(nèi)聯(lián)函數(shù)C+允許實(shí)參個(gè)數(shù)與形參個(gè)數(shù)不同例如有一函數(shù)原型說明為

20、: int init(int x=5,int y=10);/要求在函數(shù)原型或函數(shù)定義中為參數(shù)指定缺省值.則x與y的缺省值分別為5與10。 以下的函數(shù)調(diào)用都是允許的: init(100,80); / x=100,y=80 init(25); / x=25,y=10/調(diào)用函數(shù)時(shí),省略實(shí)參,C+自動(dòng)以缺省值作為相應(yīng)參數(shù)的值 init(); / x=5,y=10 說明:u在函數(shù)原型中,所有取缺省值的參數(shù)都必須出現(xiàn)在不取缺少值的參數(shù)的右邊,如:Int fun(int I,int j=5,int k);Int fun(int I,int k,j=5);函數(shù)調(diào)用時(shí),或省略某個(gè)參數(shù)時(shí),則其后的參數(shù)都應(yīng)省略,采

21、用缺省值,不允許某個(gè)參數(shù)省略后再給其后的參數(shù)指定參數(shù)值,如:Init(,20); 在在C+中中, 只要函數(shù)參數(shù)的類型不同只要函數(shù)參數(shù)的類型不同,或者參數(shù)的個(gè)數(shù)不同或者參數(shù)的個(gè)數(shù)不同,或者或者二者兼而有之二者兼而有之,兩個(gè)或者兩個(gè)以上的函數(shù)可以使用相同的函兩個(gè)或者兩個(gè)以上的函數(shù)可以使用相同的函數(shù)名。數(shù)名。 求絕對(duì)值的函數(shù): int iabs(int I); long labs(long l); double fabs(double d); C+C+用同一個(gè)函數(shù)名用同一個(gè)函數(shù)名 abs( )abs( )實(shí)現(xiàn)上面,用函數(shù)參數(shù)來區(qū)別到底調(diào)用哪實(shí)現(xiàn)上面,用函數(shù)參數(shù)來區(qū)別到底調(diào)用哪個(gè)函數(shù)。所以把個(gè)函數(shù)。所

22、以把同一作用域內(nèi)名字相同同一作用域內(nèi)名字相同,但參數(shù)不同但參數(shù)不同的函數(shù)稱為重載函的函數(shù)稱為重載函數(shù)。這得益于函數(shù)原型不僅給出函數(shù)名,而且指出了參數(shù)類型。數(shù)。這得益于函數(shù)原型不僅給出函數(shù)名,而且指出了參數(shù)類型。 為了保證編譯器根據(jù)參數(shù)類型識(shí)別重載函數(shù),必須保證重載函數(shù)的參為了保證編譯器根據(jù)參數(shù)類型識(shí)別重載函數(shù),必須保證重載函數(shù)的參數(shù)不同。數(shù)不同。參數(shù)類型的次序參數(shù)個(gè)數(shù)參數(shù)類型重載函數(shù)的參數(shù)差別 以下幾種可能出現(xiàn)二義性:1、同名函數(shù),僅返回值類型不同,但參數(shù)相同;2、兩同名函數(shù),僅用const或引用使參數(shù)類型有所不同; ex 10. int print (const int & ); i

23、nt print (int ); 3、加修飾符使參數(shù)有所不同,取決于實(shí)參的具體類型; ex 11. void print (unsigned int ); void print (int ); / print (1l); /出錯(cuò)出錯(cuò) print (1u); /正確正確4、缺省參數(shù)有時(shí)也能導(dǎo)致二義性; ex 12. void print ( int a, int b=1 ); void print (int a); / print(1); /二義性二義性 例例2.13 參數(shù)類型不同的重載函數(shù)參數(shù)類型不同的重載函數(shù)#includeint cube(int i) return i*i*i; floa

24、t cube(float f) return f*f*f; double cube(double d) return d*d*d;void main() int i=12; float f=3.4; double d=5.67; couti*i*i=cube(i)endl; coutf*f*f=cube(f)endl; coutd*d*d=cube(d)endl; 2.3.11 作用域標(biāo)識(shí)符作用域標(biāo)識(shí)符 例例2.16 使用作用域標(biāo)識(shí)符的情況。使用作用域標(biāo)識(shí)符的情況。#includeint avar;main()/局部變量具有較高的優(yōu)先權(quán) int avar; avar=25; / 局部變量ava

25、r :avar=10; / 全局變量avar coutlocal avar =avarendl; coutglobal avar =:avarendl; return 0;程序運(yùn)行結(jié)果如下: local avar=25 global avar=10 #includevoid main() union int i;float f;i=20;/無名聯(lián)合可通過使用其中數(shù)據(jù)項(xiàng)名字直接存取coutiendl; 在此無名聯(lián)合中,聲明了變量i和f具有相同的存儲(chǔ)地址。 C+類型轉(zhuǎn)換支持兩種方式: int i=10; float x=float(i); 或float x=(float)i;l運(yùn)算符new用于內(nèi)存

26、分配,語法為: 指針變量 = new 類型名; l運(yùn)算符delete釋放new分配的存儲(chǔ)空間,語法式為: delete 指針變量; l關(guān)于New /delete與malloc/freeunew 是個(gè)操作符,和“+”,“-”,“=”地位相等.而malloc是分配內(nèi)存的函數(shù),需要調(diào)用;u new是保留字,不需要頭文件支持,malloc需要頭文件庫函數(shù)支持;unew 建立的是一個(gè)對(duì)象,malloc分配的是一塊內(nèi)存.unew建立的對(duì)象可以把它當(dāng)成一個(gè)普通的對(duì)象,用成員函數(shù)訪問,不要直接訪問它的地址空,new和malloc有的區(qū)別,就好像是飛機(jī)和汽車有什么分別“,除了都是交通工具,其他的特征全是分別.

27、例例2.17 操作符操作符new和和delete的使用。的使用。 #include main() int *p; / 聲明一個(gè)整型指針變量p p=new int; / 動(dòng)態(tài)分配一個(gè)存放int型數(shù)據(jù)的內(nèi)存 空間,并將首地址賦給p *p=10; cout*p; delete p; / 釋放指針變量p指向的內(nèi)存空間 return 0; u用new分配的,使用結(jié)束后只能用delete顯式釋放,否則這部分空間只能變成不能回收的死空間u使用new分配內(nèi)存時(shí),若內(nèi)存不夠,new將返回空指針(null),如:# include void main()int *p;p=new int;if (!p)coutal

28、location failureendl;*p=10;cout*p;delete p;u使用new可以為數(shù)組動(dòng)態(tài)分配內(nèi)存空間,此時(shí)需要在類型名后面綴上數(shù)組大小.語法:指針變量=new 類型名下標(biāo)表達(dá)式如 int *p=new int10u釋放動(dòng)態(tài)分配的數(shù)組存儲(chǔ)區(qū)時(shí),使用delete.語法: delete指針變量如: delete pi;或delete10 pi;uNew可在為簡(jiǎn)單變量分配內(nèi)存空間時(shí)進(jìn)行初始化.語法:指針變量=new 類型名(初始值)如 int *p=new int(100)/動(dòng)態(tài)分配內(nèi)存并為其賦初始值99u使用new可以為數(shù)組動(dòng)態(tài)分配內(nèi)存空間,此時(shí)需要在類型名后面綴上數(shù)組大小.

29、語法:指針變量=new 類型名下標(biāo)表達(dá)式如 int *p=new int10u釋放動(dòng)態(tài)分配的數(shù)組存儲(chǔ)區(qū)時(shí),使用delete.語法: delete指針變量如: delete pi;或delete10 pi;uNew可在為簡(jiǎn)單變量分配內(nèi)存空間時(shí)進(jìn)行初始化.語法:指針變量=new 類型名(初始值)如 int *p=new int(100)/動(dòng)態(tài)分配內(nèi)存并為其賦初始值99# include void main()/new 為簡(jiǎn)單變量分配內(nèi)存空間的同時(shí)進(jìn)行初始化為簡(jiǎn)單變量分配內(nèi)存空間的同時(shí)進(jìn)行初始化int *p=new int (99);if (!p)coutallocation failureendl

30、;cout*pendl;delete p;/給數(shù)組動(dòng)態(tài)分配內(nèi)存空間給數(shù)組動(dòng)態(tài)分配內(nèi)存空間int * A=new int10;if (!A)coutallocation failureendl;for (int i=0;i10;i+)Ai=2*i;coutAi ;deleteA; 1. 引用的概念引用的概念 引用通常被認(rèn)為是某個(gè)變量的別名,聲明一個(gè)引用的格式如下: 數(shù)據(jù)類型 & 引用名 = 已定義的變量名; 例如: int i=5; int& j=i; 其中j是一個(gè)整數(shù)類型的引用,用整型變量i對(duì)它進(jìn)行初始化,j就可看作是變量i的別名 。i與j將同步更新,且使用內(nèi)存的同一地址.例例2.22 引

溫馨提示

  • 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)論