C_and_CPP 板


LINE

※ 引述《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)
1F:→ grayyoung:我後来知道应该要用By value 跟 By reference 比较准确 07/28 17:49
2F:→ james732:#include <iostream.h> 嗯... 07/28 18:17
3F:推 dendrobium:void test_add(int&); /* 这不是传址@@a */ 07/28 18:57
4F:推 dendrobium:不知道你同学考的怎麽样@@? 07/28 18:59
5F:推 VictorTom:有一种说法, 传参考(ref)呼叫就是传址(addr)呼叫; 07/28 19:59
6F:→ VictorTom:把传ptr当作传址的不知道哪一本中文书开始自己写的.... 07/28 19:59
7F:→ VictorTom:那其实是传值(value)呼叫; 所以他应该没有写错.... 07/28 20:00
8F:推 VictorTom:细节, 还是请去看 #135o9jpD 这一篇被m起来的文章:) 07/28 20:02
9F:→ AGanPTT:= = 真的不懂上面那串字= = 07/28 20:41
10F:推 VictorTom:把 #到D 整串复制, 在文章列表直接选贴上.... 07/28 21:20
11F:→ VictorTom:简单说就是PTT文章代码功能, 避免贴文号容易跑掉的问题. 07/28 21:20
12F:→ grayyoung:应该是说 07/28 21:34
13F:→ grayyoung:By reference 中文翻成传址呼叫 07/28 21:34
14F:→ grayyoung:By value 翻成传值呼叫 07/28 21:35
15F:→ grayyoung:我那时候为了简单起见 用add (address) 代表传址 07/28 21:35
16F:→ grayyoung:虽然是用原文书 可是老师上课还是会用中文 抱歉了Orz||| 07/28 21:36
17F:→ grayyoung:假如有观念上的错误 那还真糟糕 我在去看一下V大的文章 07/28 21:37
18F:→ grayyoung:欧欧 所以其实我是名词搞混 07/28 21:38
19F:→ grayyoung:假如这篇add都改成reference的话应该就没错了对吧 07/28 21:39
20F:→ grayyoung:我们老师没有特别分出三种... = =" 07/28 21:39







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP