C_and_CPP 板


LINE

图片: https://imgur.com/a/gyTea 在Software Engineering Observation 7.2 我的解读是,如果一个calling function有两个argument a,b: result = func(a,b); 那麽如果这个function的prototype是这样 int func(int a, int b); 那在implementation的部分,就只允许a或b的值被更改(两个不能同时被更改),而且被更 改的那个值一定要被return回去(我觉得我这句解读错误) 如果要同时更改a与b,必须把prototype改成这样 int func(int *a, int *b); 请问各位大大你们的理解是怎麽样呢?? 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.26.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1519876725.A.882.html
1F:→ Hazukashiine: 两个不能同时被更改? 03/01 12:00
2F:推 steve1012: 这句话要配例子看才有意思 03/01 12:21
3F:→ steve1012: 假设你有两个 变数 a,b 你想call一个 function 来改 a 03/01 12:22
4F:→ steve1012: b的话 用 clla by reference可以直接在 function 里 03/01 12:22
5F:→ steve1012: 面改他们的值 03/01 12:22
6F:→ steve1012: 但是你要是想用回传值改的话 因为只回传一个 int 你只 03/01 12:23
7F:→ steve1012: 能改一个值 03/01 12:23
喔喔~我听懂了 反正作者只是想表达用by value只能改a b其中一个,比如 a = func(a, b); 用by refernece则可以改一个以上
8F:→ Lipraxde: 怎麽感觉你一直在计较些小地方啊 03/01 13:04
听大家说这本书是圣经,所以我想要了解作者想表达的意思@@ ※ 编辑: zzss2003 (60.248.26.157), 03/01/2018 13:15:26
9F:→ MOONRAKER: 圣经就是大家都会说要看 但是通常不看 最好不用自己看 03/01 13:37
10F:→ MOONRAKER: 再说一次你这样读书效率只会差不会好 03/01 13:37
11F:→ MOONRAKER: 依照早期经验 效果也很可疑 03/01 13:38
那M大您有什麽建议吗~ ※ 编辑: zzss2003 (60.248.26.157), 03/01/2018 13:48:02
12F:推 rodion: 上面的解读我看起来不太正确... 03/01 16:33
13F:→ rodion: 我的解读:即使C function是call-by-value(copy),某些情形 03/01 16:34
14F:→ rodion: 依旧不适合在called function中更改argument值,作者举例 03/01 16:35
15F:→ rodion: array的ptr及size就属於这类型argument 03/01 16:36
16F:→ rodion: 不好意思没看清楚原PO问的是7.2 03/01 16:39
17F:→ rodion: 7.2我的解读是作者想说的只是call-by-value的argument仅仅 03/01 16:40
18F:→ rodion: 能在作为function return value的接收端被更改 (个人感觉 03/01 16:41
19F:→ rodion: 这样的说法不能说是错,但有点没必要,任何变数都能做为=的 03/01 16:43
20F:→ rodion: lhs而被更改,不是吗) 03/01 16:43
21F:→ phishingphi: 太钻牛角尖的念书方法了。单从这段话来说他只是再说 03/02 00:35
22F:→ phishingphi: 个例子然後带出 7.3 而已。 03/02 00:35
23F:→ phishingphi: 如果想把 array 内的值打印出来,那怎麽会有人去改 03/02 00:36
24F:→ phishingphi: caller 传给你的资讯? 起点和多少个元素都是 caller 03/02 00:36
25F:→ phishingphi: 跟你说的。 03/02 00:37
26F:→ phishingphi: pass-by-value 的 signature 你宣告成 const 意义不 03/02 00:38
27F:→ phishingphi: 大,我就复制一份给你这个函数去玩,你想怎麽改就怎 03/02 00:39
28F:→ phishingphi: 麽改,只要想想你这个函数要干嘛就好了。 03/02 00:39
29F:→ phishingphi: 话说回来就是 7.3 是说把某些不该被改到的东西定成 03/02 00:41
30F:→ phishingphi: const 然後 compiler 就能帮你检查是不是手残或眼拙 03/02 00:42
31F:→ phishingphi: 而不小心改到一些不该改的值。 03/02 00:42
32F:→ phishingphi: 小结:黄色框起来的字我认为只是为了带出 7.3,但是 03/02 00:46
33F:→ phishingphi: 函数 pass-by-value parameter 的通常不需要带 const 03/02 00:49
34F:→ phishingphi: pass-by-reference 则要看情况。 03/02 00:50
35F:→ phishingphi: (小结後面的但是好像应该摆到上面...和书的字面内容 03/02 00:51
36F:→ phishingphi: 无关,纯属个人看法)。 03/02 00:51
37F:推 steve1012: 原 po哪里写了 const 吗 怎麽没看到 03/02 01:28
38F:推 adrianshum: 理解成这样就好了:一般情况下function 只能return 03/02 02:51
39F:→ adrianshum: 单一数值,所以caller 只能用单一变数接收,意味一 03/02 02:51
40F:→ adrianshum: 次function call 只能影响到一个变数。要一次影响多 03/02 02:51
41F:→ adrianshum: 个变数就请用pass by ref 03/02 02:51
42F:→ phishingphi: 回网友 steve1012:图片7.3有类似的含义,只是顺着原 03/02 18:37
43F:→ phishingphi: po的例子探讨1. pass by value 的argument 要不要加 03/02 18:37
44F:→ phishingphi: const 2. pass by value 因为是 copy 所以函数要怎麽 03/02 18:39
45F:→ phishingphi: 改就怎麽改,我认为不用加const。都是7.3延伸。原po 03/02 18:39
46F:→ phishingphi: 用黄色框起来的字只是连结7.3的转折语而已。 03/02 18: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灯, 水草

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

TOP