NTUEE113HW 板


LINE

这次来讲 pointer 和 array 的关系 首先有一个奇妙的故事 array 某种程度上就是 pointer 但并不是完完全全地是 pointer 为什麽我会这样说呢? 因为在 pointer 和 array 之间有某种奇妙的关连 array 的名字就是 pointer 举个例子吧 int s[20]; 如果我们要问 s[0] 的 address 是多少? 很简单,就是 &s[0] 不过还有另一种写法,就是 s 。对,你没看错,就是 s 所以你可以 cout<<s 和 cout<<&s[0] 看看 就会发现结果是一样的。 然後补一点 array 的观念 当你宣告了一个 array ,ex: int s[20]; 就代表你 allocate 了连续的一段 memory 。 然後 每一个阵列的元素所占的大小是 4 bytes ( 因为 int 占了 4 bytes ) 那 指标的运算是怎麽一回事? 例如 int s[5] = {10, 20, 30, 40, 50}; int *p = s; // 这行也可以写成 int *p = &s[0]; cout<<*p; *p 大家应该马上看得出来就是 s[0], p 就是 &s[0] 或 s 上面也有说过了 那 … *(p+1) 是什麽呢? XD 答案是 p[1] 也就是 20 原因就在刚刚说的 array 在 memory 中是一段连续的空间 (空间这个词有点不太好 = =) 所以这里正式的讲一下指标的加法 (减法) p 是一个 int 的 pointer p+i 代表的是一个 address , 这个 address 刚好是 p 的 address 加上 4*i 这里的 4 是 int 的 4 bytes, 如果你的 p 是 char* 那就变成 1 而不是 4 於是如果 p 指向的是一个 array , int s[5]; p 的 address 加了 4*i 之後 会刚好跑到 s[i] 的 address 也就是 &s[i] 以上有点难懂= = 所以 for(int i=0;i<5;i++) cout<<s[i]<<endl; 可以写成 for(int i=0;i<5;i++) cout<<*(p+i)<<endl; 然後 p 当然也可以指向 array 中任一个元素 例如 : int s[5],*p; p = &s[2]; *p 就是 s[2], *(p+1) 就是 s[3] , *(p-1) 就是 s[1] 所以 要印出 整个 s 阵列 可以写成 for(int i=-2;i<3;i++) cout<<*(p+i)<<endl; 科科 然後 奥妙的来了 刚刚说过某种程度上 pointer 和 array 是一样的 所以还有另一种写法是这样的 *p 其实 就是 p[0] *(p+i) 就是 p[i] 所以上面也可以写成 for(int i=-2;i<3;i++) cout<<p[i]<<endl; 最後,有一个超ㄉㄧㄠˋ诡的东西 就是像这样 int s[20],*p; cout<<s<<endl; cout<<&s<<endl; cout<<&s[0]<<endl; //以上三行是一样的!! 不要问我为什麽= = 好 我又懒得打了 大家期中考加油 我要去吃午餐了 -- ╭═══╤═══╮ ╰═╮ ╭═╯ │ │ │╭═和平,土地,面包═╮ │ │ │ ╭═╧╧╮╤═╤═╮═╤═╤╧╮ │ │ │ │ ││ │ │ │ │ │ ╰═╤═╯ │ │ ││ │ │ │ │ │ │ ╰╧╯╰═══╯╰ ╰ ╰ ╰ ╰ ╰ ─╯ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.239.191 ※ 编辑: TommyKSHS 来自: 140.112.239.191 (11/11 11:40)
1F:推 e2167471:看来不收不行了 11/11 11:53
2F:推 wind42:感谢汤米计程大神 11/11 12:03
3F:推 tw00088437:汤米计程大神 11/11 12:16
4F:推 phisixersai:第3课呢(敲碗) 11/11 12:19
5F:推 tw00088437:汤米别吃午餐 呼叫毛毛虫? 11/11 12:20
6F:推 b98901056:pointer在memory里面应该是eip吧?那後面那中括号是否为 11/11 12:37
7F:→ b98901056:eip的offset?? 汤米大神帮我解惑吧~ 11/11 12:37
8F:→ TommyKSHS:抱歉我跟计概这方面不熟 Orz 我对程式语言比较熟 XD 11/11 14:06
9F:推 b98901056:喔喔 谢谢噜XD 因为我本来是学assembly的..C+菜鸟 11/11 14:30
10F:→ TommyKSHS:其实我一直很想学 assembly 的说 XD 11/11 14:51
11F:推 b98901056:呵呵 虽然我学的目的不单纯= =+ 11/11 14:53
12F:推 Ross0916:不是 EIP 唷,通常是 ESI/EDI 11/11 17:01
13F:推 b98901056:恩恩 有去问过了 还是谢谢楼上XD 11/11 18:34
14F:推 tomap41017:感谢汤米计程大神 11/11 19:10
15F:推 bcddivad:感谢汤米计程大神 感谢楼上上上助教解惑! 11/11 19:43
16F:推 breeze4103:我觉得可以常常PO也 我很需要!! 11/11 20:11
17F:推 phisixersai:对呀,别考试前才PO嘛 11/11 21:20
18F:→ phisixersai:会来不及读XD 11/11 21:20
19F:→ TommyKSHS:可是我是觉得 pointer 新手可能比较不好懂我才PO耶 XD 11/11 21:30
20F:推 acsa:有没有要PO跑跑卡丁车攻略的打算?XD 11/11 22:09
21F:推 cktigeryang:基於汤米太宅,有问题的可以追寻缘分直接来问我 11/11 22:39
22F:→ TommyKSHS:楼上加油 11/11 22:45
23F:推 User999:P.S. 上机试了一下 p = &s;编译不会通过喔! 多谢解惑! 11/11 22:55
24F:→ TommyKSHS:阿囧 我写错了…我改一下。 11/11 23:33
※ 编辑: TommyKSHS 来自: 140.112.239.191 (11/11 23:34)
25F:推 storym94374:硍...我居然没有在考前看到这篇 11/12 04:57
26F:推 erichsueh:汤米好厉害阿~~~~~~ 11/12 09:56
27F:→ asdf333:活动企划师协办享企划案免费批阅http://ppt.cc/ROwx 11/12 12:11
28F:推 henrychang3:推卡丁车~~ 11/14 23:39
29F:推 joyce113:感谢汤米大神~~~ 11/15 10:51
30F:推 sciencepie:清晰易懂 11/17 12:16
31F:推 breeze4103:Tommy~~~我的pointer分数都你给的XDDD 11/18 07:16
32F:推 xup65p4:有看有推XD 12/01 17:18







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

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

TOP