今天來學習指標的變數與函數~
在C++中凡是要使用的變數都需要事先經過宣告,指數變數也不例外。
指標變數所存放的內容,並不是一般的資料,而是存放變數的位址。根據指標存放的位址,即可找到它所指向之變數的內容。指標變數的宣告格式如下:
資料型態 *指標變數; //宣告指標變數
在變數的前面加上指標符號*
,即可將變數宣告成指標變數,以下為指標變數宣告的範例:
int *ptr; //宣告指向整數的指標變數ptr
宣告完指標變數ptr之後,如果想把指標ptr指向整個變數num(也就是存放變數num的位址),可以利用以下敘述:
int num=20; //宣告整個變數num,並設值為20
ptr=# //把指標ptr設為變數num的位址,即把ptr指向num
使用指標變數時,不是取用存放在指標裡的位址,就是取用指標所指向位址的資料內容,這兩種工作可以經由下列兩種指標運算子完成:
(1) 位址運算子&
:
位址運算子&
可用來取得變數的位址。
(2)依址取值運算子*
:
依址取值運算子*
可取得指標所指向的內容。
以下為範例:
指標可以在函數之間傳遞,也可以從函數傳回指標。
如果想要把指標傳入函數裡,可利用以下語法:
傳回值型態 函數名稱(資料型態 *指標函數)
{
//函數的本體
}
若是想設計一個函數address(),它可以接收一個指向整數的指標,且沒有傳回值,則函數address()可以定義成如下的敘述:
void address(int *ptr) //定義函數address()
{
//函數的內容
}
在呼叫address()時,由於address()必須接收一個指向整數的指標,因此我們可以把整數的位址,或者是指向整數的指標當成引數傳入函數內,如以下敘述:
int a=12;
int *ptr=&a; //將指標ptr指向變數a
address(&a); //傳入a的位址
address(ptr); //傳入指向整數的指標ptr
今天的內容就先到這邊~謝謝大家!