C_and_CPP 板


LINE

本文回给VictorTom:因为想说的颇多, 所以就不洗推文了 首先, 谢谢你的指教@@ 1. :我觉得您自己先把pointer和address给分清楚再说 请问你认为是哪边不够清楚呢? 2. :文中一堆"指标"字眼用的位址很奇怪 请问你认为哪边使用上很奇怪呢? 3. :还有, 个人觉得你C++的传址的观念有问题 恩, 我大概描述一下我的观念, 请你再指教一下好吗?@@ 以一个 int a = 10; 这样的宣告来说 我认为是宣告了一块记忆体位址, 存放了10这个值 比较具像的表示是 变数名称a 变数内容10 变数位址0x123456 大致上是这样的 而我若宣告了一个int b; 然後写上 b = a; 这是为一种传递"值"的拷贝动作 电脑会将a的值, 复制一份给b 而如果写成 int* b = &a;的话 视为一种传址的动作 从此a跟b两个变数的记忆体位址 同时指向0x123456这个位置上 因此, 无论改变哪个变数 另一个都会同步改变, 因为他们都是同一个记忆体位置 4. :严格来说, char *s=&str[0]; 是一个传值的动作, 它是把str[0]的address传值到s去; 在这里我看见的是指标的传递说@@ 请问哪本书教你 pointer variable = &variable; 这样的写法是传值而非传指标呢?@@ 我想去拜读一下 我能猜到你大概是这样想的 这里我们都明白, char* s; 宣告了一个空指标, 没内容, 随机在记忆体内取一个没用到的空间, 所以把&str[0];的记忆体位址填写进这个指标内 而如果你认为的传值传址议题 不是在讨论, 传递指标, 还是传递内容值的话 那只能说我们都没啥错, 只是因为在受教育的时候 我就根深蒂固的学习了老师那派的看法 只要是传递指标, 就是看成一种传址 5. :除非宣告的是函数int swap(int &a, int &b); :通常这种我们才在讨论传址呼叫; 想请问您觉得int swap(int *a, int *b); :是传值还是传址?? 那个, 请问"我们"是指哪个团体? you and me? or ...? 如果是某个超有成就的学术单位, 还请务必赏赐个网址来给在下拜读一番@@ 就你所写的两个函式原型来说呢 我的理解是第一个是收两个"参考值"reference 第二个收的两个是"指标"pointer 第一个函式放进去的是两个参考变数 不过参考我很少在用, 理解不够清澈 这里就请其他前辈赐教了@@ 第二个函式放进去的, 是两个"指标变数" 这两个指标变数的大小都是一样的(应该说, 所有指标变数的大小都一样) 都是4byte, 然後这个指标变数存的"值", 是另一个变数的记忆体位址 没错, 这两个函式的最终结果都一样, 会是记忆体位址的互换 但是, 用台语的说法就是: 一样就不同师父勒 一个是参考的交换, 一个是指标的交换 然後最终的成果都是指向的记忆体目标交换 即原本a 指向12345, b 指向67890 变成了a 指向67890, b 指向12345 但是实际上的记忆体位置是没有变动低@@ 不知道我这样解释够不够清楚?@@ 5. :利用指标操作另一个阵列本来就是在学习 :pointer/array/address时的基本功, 也是应该搞清楚的地方 :原原po应该在这边把指标的观念慢慢开始摸懂, :而不是因为这样什麽传值传址的不要这样写....~_~ 如果你认为char这个比较模糊的地带 是很适合新手练习指标观念的地带的话 那我也没什麽好说了@@ 不过我是认为用些比较直观的型态来教指标观念会比较好 比如说 int a = 10; int* pA = &a; 这样比较浅显的东西 如果要教指标与阵列的关系 int a = 10, b = 20, c = 30, d = 40; int Ace[4] = {a, b, c, d}; cout << *(Ace+0) << endl; cout << *(Ace+1) << endl; cout << *(Ace+2) << endl; cout << *(Ace+3) << endl; 这样不知道会不会比较好一点 喔, 对了, 我的习惯是, 我张贴的程式码 一定有经过VC2008编译器的确认@@ 不会凭空乱写... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.133.240
1F:推 RebeccaHall:回得好仔细~!! 11/29 18:01







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