指標與函數

指標可以傳入函數,也可以從函數傳回指標
讓我們看看如何撰寫

傳遞指標到函數中
函數的宣告
傳回值形態 函數名稱(資料型態* 指標變數)
Ex:
#include <iostream>

using namespace std;

void a(int* n);     //引數為指標的函數宣告 

int main(){
 
 
}<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>

 

因為函數的原型可以省略引數名稱
所以括號內
只保留指標所指向變數的形態以及一個”*”
代表傳入值是一個指向整數的指標即可
Ex:
#include <iostream>

using namespace std;

void a(int*);     //引數為指標的函數宣告 
    //可以省略引數名稱 

int main(){
 
 
}<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>
函數的定義
傳回值形態 函數名稱(資料型態指標變數){
函數的主體
}
Ex:
#include <iostream>
using namespace std;

void a(int*);    

int main(){
 
 
}

void a(int* n){                //引數為指標的函數定義 
 
 cout << *n << endl;
 
}
函數的呼叫
呼叫函數時
由於必須接收一個指向整數的指標
因此
我們可以把整數的位址或者是指標當成引數傳入函數內
Ex:
#include <iostream>
using namespace std;

void a(int*);    

int main(){
 
 int k=10;          //宣告整數型態變數k 
 int* m=&k;         //宣告整數型態指標m,並將它指向k 
 a(&k);             //呼叫函數a,並傳入k的位址 
 a(m);              //呼叫函數a,並傳入指標m 
}

void a(int* n){  
 
 cout << *n << endl;  
 
}
C++
有些運算必須透過指標的傳遞才能完成
例如
想利用函數將變數a以及變數b值互換
無法以傳值的方式撰寫
而必須以指標的傳遞來完成
Ex:
#include <iostream>
using namespace std;

void change(int*,int*);

int main(){
 
 int m=10,n=15;
 int* p1=&m;
 int* p2=&n;
 
 change(p1,p2);
 
 cout << "m=" << m << endl;
 cout << "n=" << n << endl;
}

void change(int* a,int* b){
 
 int temp;
 temp=*a;
 *a=*b;
 *b=temp;
 
}
傳回值為指標的函數
傳回值形態* 函數名稱(資料型態 引數){
函數的本體
}
Ex:
#include <iostream>
using namespace std;

int* large(int*,int*);     //引數以及傳回值皆是指標 

int main(){
 
 int m=10,n=15;
 int* p1=&m;
 int* p2=&n;
 int* p3;
 
 p3=large(p1,p2);          //指標p3接收函數的傳回值 
 
 cout << *p3 << endl; //印出指標p3所指向的內容 } int* large(int* a,int* b){ if(*a>*b)
  return a;
 else
  return b; 
 
}<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>

有疑問? 留個言吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料