如果函式要使用引數,則必須宣告接受引數值的變數,這些變數稱為函式的形式引數
形式引數就像函式內的其他區域性變數,在進入函式時被建立,退出函式時被銷毀
當呼叫函式時,有三種向函式傳遞引數的方式
傳值呼叫
該方法把引數的實際值複製給函式的形式引數,在這種情況下,修改函式的形式引數對實際引數沒有影響
預設情況下,c++使用傳值呼叫方法來傳遞引數,一般來說,這意味著函式內的**不會改變用於呼叫函式的實際引數,函式swap()定義如下:
void swap(int x,int y)
雖然在函式內改變了xy的值,但是實際上xy的值並沒有變化
指標呼叫
該方法把引數的位址複製給形式引數,在函式內,該位址用於訪問呼叫中要用到的實際引數,這意味著,修改形式引數會影響到實際引數
按指標傳遞值,引數指標被傳遞給函式,就像傳遞其他值給函式一樣,因此相應的,在下面的函式swap()中,使用者需要宣告函式引數為指標型別,該函式用於交換引數所指向的兩個整數變數的值
void swap (int *x,int *y)
引用呼叫
該方法把引數的位址複製給形式引數,在函式內,該引用用於訪問呼叫中要用到的實際引數,這意味著,修改形式引數會影響實際引數
按引用傳遞值,引數引用被傳遞給函式,就像傳遞其他值給函式用於,因此相應的,在swap()中,使用者需要宣告函式引數為引用型別,該函式用於交換引數所指向的兩個整數變數的值
void swap (int &x,int &y)
現在,通過引用傳值來呼叫函式swap()
#include
using namespace std;
void swap (int &x,int &y)
int main ()
顯示結果
交換前a,b=100,200
交換後a,b=200,100
C 函式引數
函式傳遞的是方法外的變數的副本,函式內的變數變化,不會影響函式外部的變數 static void main string args static void add int a 當引用型別的變數傳入函式後,在方法內部重新給引數賦值,外部變數和內部引數相互之間不會影響,這種情況一般很少見。static ...
C 函式引數
變數根據儲存方式的不同,可以分為 值型別和引用型別,它們之間的區別 值型別在記憶體的乙個地方 堆疊 儲存它們自己和它們的內容 引用型別在記憶體的乙個地方 堆 儲存乙個引用,而在另外乙個地方儲存內容。還用引用型別可以為null,而值型別總是包含乙個值,簡單型別中的string和object是引用型別,...
C 函式引數
指標呼叫 向函式傳遞引數的指標呼叫方法,把引數的位址複製給形式引數。在函式內,該位址用於訪問呼叫中要用到的實際引數。這意味著,修改形式引數會影響實際引數。include using namespace std void swap int a,int b intmain 執行結果 引用呼叫 該方法把引...