Delphi VJ VB VC 討論 聯繫 首頁
MS VC 參考文件

 運算子
 輸出與輸入
 流程控制
 陣列
 指標應用
 建立函數
 參數傳遞
 動態配置記憶體
 類別物件
 建構子與解建構子
 this 指標
 例外處理
 資料流
 過載運算子
 fsteram 類別

作品介紹

免費下載

廠商軟體

參數傳遞

傳值呼叫

傳值呼叫就是在呼叫函數時,將函數所需的資料傳入。編譯器遇到呼叫函數時,就把呼叫函數時所傳入的資料複製一份,供函數使用,因此,呼叫函數時的原始參數(變數)內容不會被更改。

範例:

//函數的傳值呼叫範例
#include <iostream.h>
int sum(int , int, int) ; //函數原型宣告
void main() //主程式開始
{
int
ourstart = 10, ourend = 1, ournumber = 1;
cout << "起始值:" << ourstart << " 終值為:" ;

cout << ourend << " 等差:" << ournumber << endl; //輸出各變數

//呼叫函數

cout << "1加到10為: " << sum(ourstart, ourend, ournumber) << " .\n";
cout << "起始值:" << ourstart << " 終值為:" ;
cout << ourend << " 等差:" << ournumber << endl;
//輸出各變數
} //主程式結束

int sum(int start, int end, int number) //宣告函數的傳回值、名稱及傳入參數
{
int
n, temp, total = 0; //函數內使用變數的宣告
if
(end < start)
{
//檢查傳入的計算上界是否大於下界
//若下界大於下界,則將兩個值互換

temp = end;

end = start;
start = temp;
}
n = (end - start) / number + 1;
//計算項數
total = (end + start) * n / 2; //利用公式計算總和
return total; //傳回計算結果
} //函數結束


傳址呼叫

傳址呼叫會把原始參數(變數)的位址傳入函數,因此函數型式必須宣告成指標型態來儲存呼叫程式所傳入的位址值。所以,呼叫函數時的原始參數(變數)內容將會被更改。

範例:

//函數的傳址(call by address)呼叫範例
#include
<iostream.h>
int
sum(int* , int*, int) ; //函數原型宣告

void main() //主程式開始
{
i
nt ourstart = 10, ourend = 1, ournumber = 1;
cout << "起始值:" << ourstart << " 終值為:" ;
cout << ourend << " 等差:" << ournumber << endl;
//輸出各變數
cout << "1加到10為: " << sum(&ourstart, &ourend, ournumber) << " .\n"; //呼叫函數,傳出位址
cout << "起始值:" << ourstart << " 終值為:" ;
cout << ourend << " 等差:" << ournumber << endl;
//輸出各變數
} //主程式結束

int sum(int *start, int *end, int number) //宣告函數的傳回值、名稱及傳入參數
{
int n, temp, total = 0; //函數內使用變數的宣告
if
(*end < *start)
{ //檢查傳入的計算上界是否大於下界

//若下界大於下界,則將兩個值互換
temp =
*end;
*end = *start;
*start = temp;
}
n = (
*end - *start) / number + 1; //計算項數
total = (*end + *start) * n / 2; //利用公式計算總和
return total; //傳回計算結果
} //函數結束


傳參考呼叫

傳參考呼叫必須使用&取址運算子,將函數的參數須告為參考型式。所以,呼叫函數時的原始參數(變數)內容也會被更改。

範例:

//函數的傳參考(call by reference)呼叫範例
#include <iostream.h>
int sum(int& , int&, int) ; //函數原型宣告
void main() //主程式開始
{
int ourstart = 10, ourend = 1, ournumber = 1;
cout << "起始值:" << ourstart << " 終值為:" ;
cout << ourend << " 等差:" << ournumber << endl;
//輸出各變數
cout << "1加到10為: " << sum(ourstart, ourend, ournumber) << " .\n";

//呼叫函數,傳出位址
cout << "起始值:" << ourstart << " 終值為:" ;
cout << ourend << " 等差:" << ournumber << endl;
//輸出各變數
} //主程式結束

int sum(int &start, int &end, int number) //宣告函數的傳回值、名稱及傳入參數
{
int n, temp, total = 0; //函數內使用變數的宣告

if (end < start)
{
//檢查傳入的計算上界是否大於下界
//若下界大於下界,則將兩個值互換

temp = end;
end = start;
start = temp;
}
n = (end - start) / number + 1;
//計算項數
total = (end + start) * n / 2; //利用公式計算總和
return total; //傳回計算結果
} //函數結束



本網頁由
昱得資訊工作室製作(C) Copyright Valor-Studio since in 1993

 

本網站全部內容係屬【昱得資訊工作室】版權所有,轉載必究,
非經正式書面同意,不得將全部或部分內容,以任何方式轉載於其他網站或用於任何商業行為