iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
Software Development

用30天學習C++系列 第 14

Day14 指標的變數與函數

  • 分享至 

  • xImage
  •  

今天來學習指標的變數與函數~


1.指標變數

在C++中凡是要使用的變數都需要事先經過宣告,指數變數也不例外。

1.1指數變數的宣告

指標變數所存放的內容,並不是一般的資料,而是存放變數的位址。根據指標存放的位址,即可找到它所指向之變數的內容。指標變數的宣告格式如下:

資料型態 *指標變數;  //宣告指標變數

在變數的前面加上指標符號*,即可將變數宣告成指標變數,以下為指標變數宣告的範例:

int *ptr;  //宣告指向整數的指標變數ptr

宣告完指標變數ptr之後,如果想把指標ptr指向整個變數num(也就是存放變數num的位址),可以利用以下敘述:

int num=20;   //宣告整個變數num,並設值為20
ptr=#     //把指標ptr設為變數num的位址,即把ptr指向num

1.2指標變數的使用

使用指標變數時,不是取用存放在指標裡的位址,就是取用指標所指向位址的資料內容,這兩種工作可以經由下列兩種指標運算子完成:
(1) 位址運算子&:
位址運算子&可用來取得變數的位址。
(2)依址取值運算子*:
依址取值運算子*可取得指標所指向的內容。

以下為範例:
https://ithelp.ithome.com.tw/upload/images/20240928/201694107cPXkDVSvk.jpg

2.指標與函數

指標可以在函數之間傳遞,也可以從函數傳回指標。

傳遞指標到函數中

如果想要把指標傳入函數裡,可利用以下語法:

傳回值型態 函數名稱(資料型態 *指標函數)
{
    //函數的本體
}

若是想設計一個函數address(),它可以接收一個指向整數的指標,且沒有傳回值,則函數address()可以定義成如下的敘述:

void address(int *ptr)  //定義函數address()
{
    //函數的內容
}

在呼叫address()時,由於address()必須接收一個指向整數的指標,因此我們可以把整數的位址,或者是指向整數的指標當成引數傳入函數內,如以下敘述:

int a=12;       
int *ptr=&a;    //將指標ptr指向變數a
address(&a);    //傳入a的位址
address(ptr);   //傳入指向整數的指標ptr

今天的內容就先到這邊~謝謝大家!


上一篇
Day13 認識指標
下一篇
Day15 指標的陣列與字串
系列文
用30天學習C++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言