程序設(shè)計基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第5講 指針.ppt

程序設(shè)計基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第5講 指針.ppt

ID:50065704

大小:248.00 KB

頁數(shù):56頁

時間:2020-03-08

程序設(shè)計基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第5講 指針.ppt_第1頁
程序設(shè)計基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第5講 指針.ppt_第2頁
程序設(shè)計基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第5講 指針.ppt_第3頁
程序設(shè)計基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第5講 指針.ppt_第4頁
程序設(shè)計基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第5講 指針.ppt_第5頁
資源描述:

《程序設(shè)計基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第5講 指針.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、第6章指針6.1指針的概念6.2指針運(yùn)算6.3指針與數(shù)組6.4指針與字符串6.5指針與函數(shù)6.1指針的概念指針變量(簡稱指針)是一種特殊性質(zhì)的變量。每個變量有一個地址,必要時可以使用取地址運(yùn)算符“&”來獲取變量的地址。通過變量名或地址訪問一個變量的方式,稱為“直接訪問”。把地址存放在一個變量中,然后通過先找出地址變量中的值(一個地址),再由此地址找到最終要訪問的變量的方法,稱為“間接訪問”。這里的地址變量其實(shí)就是指針。由上圖可以看到,指針變量p指向變量a。在理解“指向”的時候,應(yīng)該了解它指的是:p中存有a的地址,通過該地址就能找到a。由此,在C++語言中用

2、“指針”來表示指向關(guān)系。即“指針”就是地址。一個變量的指針就是該變量的地址。存放地址的變量,就是指針變量。pa5指針p示意圖案例6.1 編寫程序,查看變量與指針的值與地址。#includevoidmain(){floatx,*pf;pf=&x;cout<<"輸入一個浮點(diǎn)數(shù):";cin>>x;cout<<"x="<

3、,還可以指向內(nèi)存中其他任何數(shù)據(jù)結(jié)構(gòu),如數(shù)組,結(jié)構(gòu)和聯(lián)合等,它還可以指向函數(shù)。應(yīng)該注意,在程序中參加數(shù)據(jù)處理的量不是指針本身的量,因為指針本身是個地址量。而指針?biāo)赶虻淖兞?,即指針?biāo)赶虻膬?nèi)存區(qū)域中的數(shù)據(jù)(稱為指針的目標(biāo))才是需要處理的數(shù)據(jù)。這就是C++語言中利用指針處理數(shù)據(jù)的特點(diǎn)。指針的定義和使用指針是一個變量,在程序中使用時,必須先聲明,后使用。在指針聲明的同時也可以進(jìn)行初始化。1.指針的定義指針的定義指出了指針的存儲類型和數(shù)據(jù)類型,定義的語法形式如下:存儲類型數(shù)據(jù)類型*指針變量名例如:int*p1;staticint*p2;char*da;上面定義了名

4、為p1,p2和da的三個不同類型指針。通常把指針指向的變量的數(shù)據(jù)類型稱為指針的數(shù)據(jù)類型;而任何一個指針變量本身數(shù)據(jù)值的類型都是unsignedlongint。在指針變量名前的符號“*”表示指向運(yùn)算。指針變量的類型確定后只能指向這種既定的數(shù)據(jù)類型。不可指向其他類型的數(shù)據(jù)。注意:定義一個指針變量必須用符號“*”,它表明其后的變量是指針變量,但千萬不要認(rèn)為“*p”是指針變量,指針變量是p而不是*p。2.指針的使用定義了一個指針后,在使用此指針前,必須首先給它賦一個合法的值。否則,程序中對指針的使用就有可能導(dǎo)致系統(tǒng)崩潰??梢栽诙x指針的同時,通過初始化來給指針賦值

5、,也可以在使用之前給指針賦值。下面首先來了解指針的初始化。由于指針是保持地址的變量,所以初始化時賦予它的初值必須是地址量。指針初始化的一般形式是:存儲類型數(shù)據(jù)類型*指針名=初始地址值;例如:inta,*pa=&a;將變量a的內(nèi)存地址作為初始值賦予int型指針pa。上面這種寫法與下面的寫法是等價的:inta;int*pa=&a;當(dāng)把一個變量的內(nèi)存地址作為初始值賦給指針時,該變量必須在指針初始化之前已經(jīng)說明過。其道理很簡單,變量只有在說明之后才被分配一定的內(nèi)存地址。此外,該變量的數(shù)據(jù)類型必須與指針的數(shù)據(jù)類型一致。下面的例子是把一個指針初始化為空指針。int*p

6、x=0;這個語句將指針px的值初始化為0。值為0的指針叫作空指針。為了使用安全起見,一般來說,在定義指針時,最好初始化,哪怕是初始化為空指針。如果在定義指針時,指針初始化為0或者根本沒有初始化。那么在使用此指針前,就必須給它賦有意義的值。例如:intn,*p1;//定義指針p1時沒有初始化p1=&n;//給指針p1賦值為int型變量n的地址或者:intn,*p1=0;//定義指針p1時初始化為0p1=&n;//給指針p1賦值為int型變量n的地址都是正確的。也可以定義一個指向數(shù)組的指針。由于數(shù)組名表示的是該數(shù)組的首地址,所以如果定義一個指針指向數(shù)組,則可如

7、下例聲明:例如:inta[10],*pa=a;這個語句定義了一個指針pa,并把pa初始化為指向數(shù)組inta[10]的指針,即指針pa指向數(shù)組的第一個元素。這時,不需要使用取地址運(yùn)算符“&”。上述聲明方式與下面的語句等價:inta[10],*pa=&a[0];“&a[0]”表示數(shù)組a中第一個元素所在的內(nèi)存地址值。如果說明了一個指針,并使其值為某個變量的地址,則可以通過這個指針間接地訪問在這個地址中存儲的值。利用指針來訪問變量值需要使用間接訪問運(yùn)算符“*”。例如:inta=1,*pa=&a;cout<<*pa;用cout語句輸出的是變量a的值1,即“*pa”就

8、是代表變量a。上面的“cout<<*pa;”語句與“cout<

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。