[cpp]
/*
* 程序的版權和版本聲明部分
* Copyright (c)2012, 煙台大學計算機學院學生
* All rightsreserved.
* 文件名稱: x.cpp
* 作者:徐本錫
* 完成日期: 2012年 12 月20 日
* 版本號: v1.0
* 輸入描述:
* 問題描述:自定義函數 的實際參數 的交換
* 程序輸出:
*/
//我的代碼:
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
void jiaohuan(int x, int y);
int main(void)
{
int a,b;
cin>>a>>b;
if (a<b) jiaohuan(a, b);
cout<<"a,b="<<a<<","<<b;
return 0;
}
void jiaohuan(int x, int y)
{
int t;
t=x;
x=y;
y=t;
}
分析:
自定義函數明顯是為了實現兩個參數的交換,當a<b時調用函數,是為了先輸出兩個數中較大的值,而實踐是檢驗真理的唯一標准。由實踐知,並沒有實現兩個實際參數的交換。
由於實際參數和形式參數被分別分配空間儲存,所以實際參數賦值給形式參數,形式參數交換後,自定義函數結束,形式參數儲存空間釋放。而實際參數並未改變。
[cpp]
/*
* 程序的版權和版本聲明部分
* Copyright (c)2012, 煙台大學計算機學院學生
* All rightsreserved.
* 文件名稱: x.cpp
* 作者:徐本錫
* 完成日期: 2012年 12 月20 日
* 版本號: v1.0
* 輸入描述:
* 問題描述:自定義函數 的實際參數 的交換
* 程序輸出:
*/
//我的代碼:
#include <iostream>
using namespace std;
void jiaohuan(int *x, int *y);
int main(void)
{
int a,b;
cin>>a>>b;
if (a<b) jiaohuan(&a, &b);
cout<<"a,b="<<a<<","<<b;
return 0;
}
void jiaohuan(int *x, int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
分析:
上個程序實現了交換,因為指針作為實際參數和形式參數所指的是同一個內存區域,當形式參數所指的值改變時,實際參數所指的值會隨之變化。
[cpp]
/*
* 程序的版權和版本聲明部分
* Copyright (c)2012, 煙台大學計算機學院學生
* All rightsreserved.
* 文件名稱: x.cpp
* 作者:徐本錫
* 完成日期: 2012年 12 月20 日
* 版本號: v1.0
* 輸入描述:
* 問題描述:自定義函數 的實際參數 的交換
* 程序輸出:
*/
//我的代碼:
#include <iostream>
using namespace std;
void jiaohuan(int &x, int &y);
int main(void)
{
int a,b;
cin>>a>>b;
if (a<b) jiaohuan(a, b);
cout<<"a,b="<<a<<","<<b;
return 0;
}
void jiaohuan(int &x, int &y)
{
int t;
t=x;
x=y;
y=t;
}