您好,登錄后才能下訂單哦!
今天小編給大家分享一下C++的指針如何使用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
C++中指針儲(chǔ)存一個(gè)地址
聲明:
datatype* p; datatype表示指針指向的數(shù)據(jù)類(lèi)型。
int num=0; int* pnum=# //&是地址運(yùn)算符,&num表示num這個(gè)變量存儲(chǔ)的地址 //int*聲明了pnum是一個(gè)指針變量
解引用符號(hào) *:
int num=1024; int* pnum=# cout<<*pnum<<endl;//結(jié)果是num的值:1024
指針的運(yùn)算:
int num=1024; int* pnum=# //地址后移: //cout<<*pnum<<endl; cout<<pnum<<" "; pnum=pnum+sizeof(int); cout<<pnum;//輸出 0x61ff08 0x61ff18
改變變量num:
int num=1024; int* pnum=# //變量num的改變 (*pnum)++;//此時(shí)num的值變?yōu)?025,注意:不加括號(hào)可能出錯(cuò)。
幾種指針:
常量指針:聲明之后不可更改(指向一個(gè)不變的內(nèi)存位置,但該位置存儲(chǔ)的內(nèi)容可以改變)
聲明常量指針時(shí)數(shù)據(jù)類(lèi)型在前,并且聲明和初始化必須在同一行
數(shù)組名就是常量指針。
//正確聲明常量指針: int num=1024; int* const pnum=# //錯(cuò)誤聲明: const int* pnum=#//指針不是常量,但是不能通過(guò)該指針改變?cè)摂?shù)據(jù)。 num=64;//no problem,可以改變變量值 *pnum=100;//wrong
指針函數(shù):
1.指針作為參數(shù)
void change(int* p) { (*p)++; } int main() { int num=1024; int* pnum=# change(pnum); cout<<num;//輸出1025 return 0; }
2.指針作為返回結(jié)果
int* change(int* p) { p=p+1;//指針向后移動(dòng) //指針p為常量指針 p+1的結(jié)果更像是指向下一個(gè)數(shù)組元素 return p; } int main() { int list1[3]={1,2,3}; int* plist1=list1; plist1=change(plist1); cout<<*plist1<<endl;//輸出2 return 0; }
3.this指針:訪問(wèn)其他數(shù)據(jù)域的參數(shù)。
Circle::Circle() { double r=1; } Circle::Circle(double r) { this->r=r;//調(diào)用上一個(gè)作用域的r }
以上就是“C++的指針如何使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。