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