(轉(zhuǎn)載)ES6、ES7、ES8、ES9、ES10新特性一覽
1074
2025-04-02
C++指向數(shù)組元素的指針
在C++中,一個(gè)變量有地址,一個(gè)數(shù)組包含若干元素,每個(gè)數(shù)組元素都在內(nèi)存中占用存儲(chǔ)單元,它們都有相應(yīng)的地址;指針變量既然可以指向變量,也可以指向數(shù)組元素,所謂數(shù)組元素的指針就是數(shù)組元素的地址。
定義一個(gè)整型數(shù)組array,它有10個(gè)元素:
int array[10];
定義一個(gè)基類型為整型的指針變量p:
int *p;
將元素array[0]的地址賦給指針變量p,使p指向array[0]:
p=&array[0];
和C語(yǔ)言一樣,在C++中,數(shù)組名代表數(shù)組中第一個(gè)元素的地址,因此也可以這樣寫(xiě):
p=&array[0]; p=array;
在定義指針變量時(shí)可以直接賦初值,p的初值為array[0]的地址:
int *p=&array[0];
同樣,也可以寫(xiě)成:
int *p=array;
可以通過(guò)指針引用數(shù)組元素,假設(shè)p已定義為一個(gè) 基類型為整型的指針變量,并已將一個(gè)整型數(shù)組元 素的地址賦給了它,使它指向某一個(gè)數(shù)組元素。
如果指針變量p已指向數(shù)組中的一個(gè)元素,則p+1指向同一數(shù)組中的下一個(gè)元素,p+i和array+i就是array[i]的地址,或者說(shuō),它們指向array數(shù)組的第i個(gè)元素。
*(p+i)或*(array+i)是p+i或array+i所指向的數(shù)組元素,即array[i],可以看出,[]實(shí)際上是變址運(yùn)算符。對(duì)array[i]的求解過(guò)程是: 先按array+i×d計(jì)算數(shù)組元素的地址,然后找出此地址所指向的單元中的值。
指向數(shù)組元素的指針變量也可以帶下標(biāo),如p[i] 與* (p+i) 等價(jià),引用一個(gè)數(shù)組元素,可用以下方法:
下標(biāo)法,如array[i]形式
指針?lè)ǎ?(a+i)或*(p+i)。
其中array是數(shù)組名,p是指向數(shù)組元素的指針變量。
經(jīng)典案例:C++輸出數(shù)組中的10個(gè)元素。
#include 執(zhí)行以上程序會(huì)輸出: 2 3 5 6 1 4 5 8 9 4 輸出結(jié)果: 2 3 5 6 1 4 5 8 9 4 -------------------------------- Process exited after 27.55 seconds with return value 0 請(qǐng)按任意鍵繼續(xù). . . C++ 數(shù)據(jù)結(jié)構(gòu)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。