C++ 指標的基本宣告以及指標的指標(雙重指標、三重指標...)

這篇文章主要用來記錄學習指標基本的宣告規則以及雙重指標、三重指標…等多重指標之間的存取關係

先從最基本的指標觀念說起

  • * (米字號)的功能為:宣告指標變數用、取值運算子(取出該變數所存放的值)。
  • & 的功能為:取"址"運算子 (取某變數的記憶體位置)

指標的功能是用來存放某個資料型態的記憶體位置,舉個簡單的例子

int p = 10;       /宣告一個存放整數10的整數變數P

int *ptr = &p    /宣告整數指標變數ptr存放另一個整數變數的記憶體位置&p

↑ 宣告指標變數時需要在變數名稱的前面加入* (米字號,在這裡用作宣告指標)

宣告的方是可以 int* ptr / int * ptr / int *ptr 三種格式

*只要是在資料型態跟變數名稱之間即可,且可以一次宣告多告指標變數 int *ptr,*ptr2

但是建議使用將指標放在變數旁邊的方式宣告 int *ptr

因為怕造成日後使用上的誤會,例如:

版本一:

int *ptr,ptr2;      /ptr為整數指標變數,ptr2為整數變數

版本二:

int *ptr,*ptr2;     /ptr,ptr2皆為整數指標變數

另外,若只需要單純宣告一個指標記錄非特定資料型態的記憶體位置,則可以使用以下方式宣告指標變數

void *ptr;

而*(米字號)在宣告的變數的時候是用作宣告指標變數,而在一般情況下(非宣告、非數學乘法時),則為取值運算子,以下例子解釋:

int p = 10;

int *ptr = &p;     /這裡的*米字號用作宣告指標變數

cout << *ptr;     /這裡會輸出10,這裡的*米字號就是用作取值運算子

cout << ptr;      /這裡會輸出ptr所存放的記憶體位置(p的記憶體位置) 也就是&p

以上是宣告指標的部分。

再來是雙重指標(指標的指標)

指標的指標,說穿了就是在宣告一個指標變數記錄另一個指標的位置,宣告的方式如下:

int p = 10;

int *ptr = &p;       /使用指標ptr記錄p的記憶體位置

int **ptr = &ptr;   /使用雙重指標記錄指標ptr的記憶體位置

宣告的方式這裡可以思考成,

一開始我們宣告整數變數時是只使用 int p 宣告指標變數時,

因為多了個指標的型態,所以便成為 int *ptr

之後我們要宣告的雙重指標(指標的指標),也就是說指標的型態為 *ptr,
那麼指標的指標就等於*(*ptr) —>這邊方便理解所以使用括號

由此往下推,三重指標就等於(***ptr),由於是存放指標的指標,所以可以想成*(**ptr),

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值