請問c++中的傳值 ? 傳址 ?傳參考 ? 定義是什麼呢??
知道的人麻煩解說一下感謝
2006-07-21 09:36:42 · 1 個解答 · 發問者 小豬撲滿 1 in 電腦與網際網路 ➔ 程式設計
傳值(Pass by value):傳值就是傳送(變數)值給函式上對應的參數,值被複製一份給參數,傳遞者與接受者兩個變數彼此各佔有一個記憶體,互不相干。
傳址(Pass by address):形成參數和實際參數乃是共用相同的記憶體位址 ,,副程式可以改變主程式內實際參數值 。
傳參考(Pass by reference):傳參考是直接告知變數或物件的記憶體位置,而沒有做變數或物件複製的動作,目的在於可於函式中直接操作目標變數或物件。
==================================
傳值的特色:簡單易寫。
傳址的特色:藉由傳遞地址來改變主程式變數的值,以達到傳回多個數值的目地。
傳參考的特色:寫法類傳值,效果同傳址。
==================================
傳值範例:
int cal1(int a,int b,int c)
{
return a+b+c;
}
void main()
{
int sum,a[3]={1,2,3};
sum = cal1(a[0],a[1],a[2]);
cout << sum ;
}
傳址範例:
int cal1(int *b)
{
*b = 10;
return *b+*(b+1)+*(b+2);
}
void main()
{
int sum,a[3]={1,2,3};
sum = cal1(a);
cout << sum ;
}
傳參考範例:
int cal1(int &a,int &b,int &c)
{
a = 10;
return a+b+c;
}
void main()
{
int sum,a[3]={1,2,3};
sum = cal1(a[0],a[1],a[2]);
cout << sum ;
}
2006-07-21 10:01:09 · answer #1 · answered by ? 3 · 0⤊ 0⤋