| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 577 人关注过本帖
标题:为什么说p2[i] 与 *(p2+i)所访问的数据相同,thank you!
只看楼主 加入收藏
happysteven
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-5-12
结帖率:66.67%
收藏
已结贴  问题点数:12 回复次数:5 
为什么说p2[i] 与 *(p2+i)所访问的数据相同,thank you!
为什么说p2[i] 与 *(p2+i)所访问的数据相同,thank you!
搜索更多相关主题的帖子: 访问 数据 thank 
2010-06-18 19:57
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:4 
因为它们所指地址是同一个空间。

★★★★★为人民服务★★★★★
2010-06-18 20:16
happysteven
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-5-12
收藏
得分:0 
回复 2楼 cnfarer
怎么理解呢
2010-06-18 20:31
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
首先,P2是一个指针,指针存放的实际是一个地址空间,P2+i是对地址的计算:P2+sizeof(datatype)*i
P2[]是数组,此时p2实际上就是数组的首地址,P2[i]是数组的第i个元素,它的地址是:数组首地址+sizeof(datatype)*i

[ 本帖最后由 cnfarer 于 2010-6-23 08:52 编辑 ]

★★★★★为人民服务★★★★★
2010-06-19 07:24
cc023061227
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2010-4-1
收藏
得分:4 
数组名p2代表p2[0],所以p2[0]地址加i,自然是p2[i]的地址, 那么*p2[i]自然为p2[i]的值
2010-06-22 17:24
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:4 
很简单的指针问题
 首先p2是一个指针  它指向数组首元素,确切的说是指向了数组首元素的入口点
假如说数组是一个整形的数组,那么在vc++6.0中int 型是4字节,假如p2是0x00。
  那么之所以p2+i  与p2[i]访问的元素相同  是因为p2+i实际上是 p2+i*sizeof(int)
所以*(p2+i*sizeof(int))当然就是地 i个元素的入口点了
  当你在遇到一个指针的时候 先看他是什么型的  再看他是指向什么型的  最后看他
指向的是什么  把这三个问题搞清楚 那么遇到的这个指针你也就清楚了

                                         
===========深入<----------------->浅出============
2010-06-24 02:56
快速回复:为什么说p2[i] 与 *(p2+i)所访问的数据相同,thank you!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017110 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved