C++學(xué)習(xí)之指針的使用詳解
C++中指針儲(chǔ)存一個(gè)地址
聲明:
datatype* p; datatype表示指針指向的數(shù)據(jù)類型。
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ù)類型在前,并且聲明和初始化必須在同一行
數(shù)組名就是常量指針。
//正確聲明常量指針: int num=1024; int* const pnum=# //錯(cuò)誤聲明: const int* pnum=#//指針不是常量,但是不能通過該指針改變?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指針:訪問其他數(shù)據(jù)域的參數(shù)。
Circle::Circle()
{
double r=1;
}
Circle::Circle(double r)
{
this->r=r;//調(diào)用上一個(gè)作用域的r
}到此這篇關(guān)于C++學(xué)習(xí)之指針的使用詳解的文章就介紹到這了,更多相關(guān)C++指針內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c語言中字符串分割函數(shù)及實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猚語言中字符串分割函數(shù)及實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
C++實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的順序表詳解
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)動(dòng)態(tài)順序表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
C語言數(shù)據(jù)結(jié)構(gòu)之?dāng)U展字符詳解
掌握C語言數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵在于理解其核心概念,擴(kuò)展字符作為其中的重要一環(huán),對(duì)于編程人員來說至關(guān)重要,本指南將為您深入剖析擴(kuò)展字符的相關(guān)知識(shí),帶您輕松掌握C語言數(shù)據(jù)結(jié)構(gòu),讓我們一起探索這個(gè)令人著迷的領(lǐng)域吧!2024-03-03
C語言通過gets和gets_s分別實(shí)現(xiàn)讀取含空格的字符串
在遇到包含空格的字符串輸入時(shí)該如何讀取呢?如果使用scanf以%s格式去讀取輸入的字符串,遇到空格就讀取結(jié)束了,顯然這樣是讀取不了的。本文就將介紹兩個(gè)可以對(duì)含空格字符串讀取的庫函數(shù)------gets和gets_s函數(shù),感興趣的可以了解一下2021-12-12
C語言中自動(dòng)與強(qiáng)制轉(zhuǎn)換全解析
在編寫C程序時(shí),類型轉(zhuǎn)換是確保數(shù)據(jù)正確性和一致性的關(guān)鍵環(huán)節(jié),無論是隱式轉(zhuǎn)換還是顯式轉(zhuǎn)換,都各有特點(diǎn)和應(yīng)用場景,本文將詳細(xì)探討C語言中的類型轉(zhuǎn)換機(jī)制,幫助您更好地理解并在實(shí)際編碼中靈活運(yùn)用這些知識(shí),需要的朋友可以參考下2025-02-02

