Re: [問題] 試舉例說明何謂傳值呼叫.傳址呼叫.傳參 …
※ 引述《f4upig (sn)》之銘言:
: 等等要考試了,麻煩各大大可以趕緊幫忙?
雖然是說我猜你已經考完了
不過不知道這篇文章對你還有沒有幫助
這是以前我們考試前 我整理給同學看的
http://www.wretch.cc/blog/grayyoung/4607287
#include <iostream.h>
void test_value(int); /*引數為傳值呼叫的function*/
void test_add(int&); /*引數為傳址呼叫的function*/
int main(){
int a=5,b=5;
/*定義a,b為整數型態 (等下a給傳值用function b給傳址function用)*/
/*a,b皆為5*/
cout << "a的值: " << a << " a的址: " << &a << endl ; /*印出a的值和址*/
cout << "b的值: " << b << " b的址: " << &b << endl ; /*印出b的值和址*/
test_value(a) ; /*呼叫這個function 引數為傳值呼叫a*/
test_add(b) ; /*呼叫這個function 引數為傳址呼叫b*/
/*在做完function把5改成7後 再列一次a,b的值*/
cout << "a的值: " << a << " a的址: " << &a << endl ; /*印出a的值和址*/
cout << "b的值: " << b << " b的址: " << &b << endl ; /*印出b的值和址*/
cout << "我們發現b的值改變了 因為他跟y是同一位址 修改y會修改到b" << endl ;
cout << "但是a沒有改變 x只是讀他的值" ;
cout << "修改x只會修改x那個位址的值 對a沒有影響" << endl ;
return 0;
}
void test_value(int x){
/*用x來接收a的"址"*/
cout << "x的值: " << x << " x的址: " << &x << endl ; /*印出x的值和址*/
cout << "我們發現x的值和a的值一樣 但是址不一樣 因為是傳值呼叫" << endl ;
x = 7 ; /*更改x的值等於7*/
cout << "x的值: " << x << " x的址: " << &x << endl ; /*再一次印出x的值和址
*/
}
void test_add(int& y){
/*用y來接收b的"址"*/
cout << "y的值: " << y << " y的址: " << &y << endl ; /*印出y的值和址*/
cout << "我們發現y和b的值和址都一樣 因為是傳址呼叫" << endl ;
y = 7 ; /*更改y的值等於7*/
cout << "y的值: " << y << " y的址: " << &y << endl ; /*再一次印出y的值和址
*/
}
執行結果
a的值: 5 a的址: 0xbfbfec40
b的值: 5 b的址: 0xbfbfec3c
x的值: 5 x的址: 0xbfbfec10
我們發現x的值和a的值一樣 但是址不一樣 因為是傳值呼叫
執行x=7以後
x的值: 7 x的址: 0xbfbfec10
y的值: 5 y的址: 0xbfbfec3c
我們發現y和b的值和址都一樣 因為是傳址呼叫
執行y=7以後
y的值: 7 y的址: 0xbfbfec3c
a的值: 5 a的址: 0xbfbfec40
b的值: 7 b的址: 0xbfbfec3c
我們發現b的值改變了 因為他跟y是同一位址 修改y會修改到b
但是a沒有改變 x只是讀他的值修改x只會修改x那個位址的值 對a沒有影響
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.139.4
※ 編輯: grayyoung 來自: 140.113.139.4 (07/28 17:40)
※ 編輯: grayyoung 來自: 140.113.139.4 (07/28 17:42)
→
07/28 17:49, , 1F
07/28 17:49, 1F
→
07/28 18:17, , 2F
07/28 18:17, 2F
推
07/28 18:57, , 3F
07/28 18:57, 3F
推
07/28 18:59, , 4F
07/28 18:59, 4F
推
07/28 19:59, , 5F
07/28 19:59, 5F
→
07/28 19:59, , 6F
07/28 19:59, 6F
→
07/28 20:00, , 7F
07/28 20:00, 7F
推
07/28 20:02, , 8F
07/28 20:02, 8F
→
07/28 20:41, , 9F
07/28 20:41, 9F
推
07/28 21:20, , 10F
07/28 21:20, 10F
→
07/28 21:20, , 11F
07/28 21:20, 11F
→
07/28 21:34, , 12F
07/28 21:34, 12F
→
07/28 21:34, , 13F
07/28 21:34, 13F
→
07/28 21:35, , 14F
07/28 21:35, 14F
→
07/28 21:35, , 15F
07/28 21:35, 15F
→
07/28 21:36, , 16F
07/28 21:36, 16F
→
07/28 21:37, , 17F
07/28 21:37, 17F
→
07/28 21:38, , 18F
07/28 21:38, 18F
→
07/28 21:39, , 19F
07/28 21:39, 19F
→
07/28 21:39, , 20F
07/28 21:39, 20F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章