指針小解

原文鏈接
指針的類型
分為指針本身的類型和指針?biāo)赶虻念愋?/p>

int *ptr; //指針的類型是int *, 指針?biāo)赶虻念愋褪莍nt
char *ptr; //指針的類型是char *. 指針?biāo)赶虻牡念愋褪莄har
int **ptr; //指針的類型是 int **, 指針?biāo)赶虻牡念愋褪?int *
int (*ptr)[3]; //指針的類型是 int(*)[3] 指針?biāo)赶虻牡念愋褪?int()[3]
int *(*ptr)[4]; //指針的類型是 int *(*)[4] 指針?biāo)赶虻牡念愋褪?int *()[4]

指針的算術(shù)運算中,指針?biāo)赶虻念愋陀泻艽蟮淖饔?/p>

指針的值
指針的值被編譯器當(dāng)做一個地址,而不是一個一般的數(shù)值。在32位程序中指針的值就是一個32位證書。
指針?biāo)赶虻膬?nèi)存區(qū)就是從指針的值所代表的那個內(nèi)存地址開始,長度為sizeof(指針?biāo)赶虻念愋?的一片內(nèi)存區(qū)域,相當(dāng)于說是該指針的值就是這塊區(qū)域的首地址。

指針?biāo)赶虻膬?nèi)存區(qū)和指針?biāo)赶虻念愋褪莾蓚€完全不同的概念。在例中,指針?biāo)赶虻念愋鸵呀?jīng)有了,但由于指針還未初始化,所以它所指向的內(nèi)存區(qū)是不存在的,或者說是無意義的。
例子

int *ptr;
char *ptr;
int **ptr;
int (*ptr)[3];
int *(*ptr)[4];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容