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

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

ID:50065704

大?。?48.00 KB

頁(yè)數(shù):56頁(yè)

時(shí)間:2020-03-08

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

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

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

2、“指針”來(lái)表示指向關(guān)系。即“指針”就是地址。一個(gè)變量的指針就是該變量的地址。存放地址的變量,就是指針變量。pa5指針p示意圖案例6.1 編寫(xiě)程序,查看變量與指針的值與地址。#includevoidmain(){floatx,*pf;pf=&x;cout<<"輸入一個(gè)浮點(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ù)處理的量不是指針本身的量,因?yàn)橹羔槺旧硎莻€(gè)地址量。而指針?biāo)赶虻淖兞浚粗羔標(biāo)赶虻膬?nèi)存區(qū)域中的數(shù)據(jù)(稱為指針的目標(biāo))才是需要處理的數(shù)據(jù)。這就是C++語(yǔ)言中利用指針處理數(shù)據(jù)的特點(diǎn)。指針的定義和使用指針是一個(gè)變量,在程序中使用時(shí),必須先聲明,后使用。在指針聲明的同時(shí)也可以進(jìn)行初始化。1.指針的定義指針的定義指出了指針的存儲(chǔ)類型和數(shù)據(jù)類型,定義的語(yǔ)法形式如下:存儲(chǔ)類型數(shù)據(jù)類型*指針變量名例如:int*p1;staticint*p2;char*da;上面定義了名

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

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

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

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

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

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

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

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