C_and_CPP 板


LINE

直接回文好了, 小弟我几年前所学的Programing Language.... (不是C/C++程式设计这种课程, 我们翻语言结构, 其他学校怎称呼不晓得) C语言: 只有Call by Value. C++: 有Call by Value和Call by Reference. 其中Call by Reference因其特性又称为Call by Address. ==== Ex1: /* 这个swap没有实质的swap能力我知道, 这是一个Call by Value的ex */ void swap1(int a, int b) { int temp = a; a = b; b = temp; } main function里: .... swap1(num1, num2); .... Ex2: /* 这个swap是C语言常见的swap实作, 问题是这还是Call by Value. 它是把int *的"Value"传入swap2; 把这种称作Call by Address, Google大略查到的是不晓得哪一本C/C++的书作者自己这样叫的. */ void swap2(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } main function里: .... swap2(&num1, &num2); .... Ex3: // 这个是小弟所认知的Call by Reference应该有的作法. // 因为swap3实际pass的东西, 所以又称为Call by Address. void swap3(int &a, int &b) { int temp = a; a = b; b = temp; } main function里: .... swap3(num1, num2); .... ==== 实务上C里我们早就用传pointer来做到上例类似swap3成功换num1/num2的行为.... 也许在这里好像对C++来说我传int*也没差, 但是基本上这是Call by Value.... (把这个叫Call by Address不太对, 也容易和Programing Language上的定义混摇) 但是像Java这种表面上没有pointer的language应该就有差了吧.... 而且观察swap3的code, compiler要处理的方式应该也不一样吧.... 印象中其他语言还有Call by Name或其他Call by XXX的, 不过早忘光了.... 以上, 小弟当初所学是这样, 不晓得有没有记错, 或程式语言有演进改变的@_@" --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.66.243.96 ※ 编辑: VictorTom 来自: 61.66.243.96 (02/19 12:40)
1F:→ windincloud:http://www.wretch.cc/blog/pcyu16/14490323 看看这篇 02/19 13:11
2F:→ windincloud:再看看你写的2&3 就会发现那边不一样了~ :) 02/19 13:11
3F:→ VictorTom:个人倾向不要用Call by Address这种会让人搞混的称呼. 02/19 13:31
4F:→ VictorTom:小弟当初修课就是花好久时间才把想法改转换了过来.... 02/19 13:31
5F:→ VictorTom:http://www.cplusplus.com/doc/tutorial/ 02/19 13:32
6F:→ VictorTom:functions2.html 要和上面接起来, CbV, 和CbR的说明. 02/19 13:33
7F:→ VictorTom:一定要把C语言传address的方式叫Call by Address的话. 02/19 13:33
8F:→ VictorTom:http://sandwichc-life.blogspot.com/2007/10/ 02/19 13:33
9F:→ VictorTom:cc-pointer-reference.html 也是要接起来... 02/19 13:33
10F:→ VictorTom:小弟觉得上面这个网站的红字部份说明的很清楚:) 02/19 13:34
11F:→ VictorTom:http://ms.hk.edu.tw/~h93b114/myfiles/slide-07.ppt 02/19 13:46
12F:→ VictorTom:上面这个大约就是小弟当初所学的, 当然document不同就是 02/19 13:47
-- 不好意思改一下, 小弟後来找到这篇应该是最能解释小弟要说的东西.... http://www.programmer-club.com/pc2020v5/forum/showSameTitleN.asp?board_pc2020=c&id=36833&keyword= 请看 : sflam(Raymond) 的 Best Solution. http://www.programmer-club.com/pc2020v5/forum/showSameTitleN.asp? board_pc2020=c&id=36833&keyword= 如果第一个Link太常不能存取, 请把上面两行接起来.... 不好意思小弟不习惯缩网址, 这样大家才容易知道资料来源:) ※ 编辑: VictorTom 来自: 61.66.243.96 (02/19 13:58)
13F:→ windincloud:简单的说 看的点不同 自然就会不同 02/19 14:08
14F:→ windincloud:从main() 跟sub()看 讲法就会不一样~ 02/19 14:08
15F:→ VictorTom:Agree; 不过小弟现在不敢用Call by Address这讲法就是:) 02/19 14:09
16F:推 stonehomelaa:老外没在讲call by address 听说这是台湾人自创的 02/19 20:17
17F:推 zlw:台湾写的中文书都这样教,就跟着这样念啦 02/19 20:56







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灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP