鱼C论坛

 找回密码
 立即注册
查看: 3027|回复: 12

关于指针的一个问题

[复制链接]
发表于 2013-5-17 00:04:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 a399634192 于 2013-5-17 00:10 编辑

先上代码:
#include<stdio.h>

void f(int * pArr,int len);
int main(void)
{

          int a[5]={1,2,3,4,5};
          f(a,5);
         printf("这里是a[0]的地址   %#x\n ",&a);
         printf("这里是a[2]的地址   %#x\n",&a[2]);
        printf("这里是a+2的地址   %#x\n ",&a+2);
        return 0;
}
void f(int * pArr, int  len)
{
     int i;
      printf("这里是pArr的地址    %#x\n ",pArr);
      printf("这里是pArr+2的地址   %#x\n ",pArr+2);

}

本人刚学C看了几天郝斌老师的视频 ,有个问题一直没弄明白。 说这里 pArr等价于a  而pArr+1等价于a[1]   那既然是这样   这里的pArr+2与 a+2打印出的地址为什么不是一样呢   
还望各位前辈高手不吝赐教   小弟不胜感激
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-17 07:13:07 | 显示全部楼层
应该是优先级问题,&的优先级高于+,所以先执行&a之后再执行+2,你试试把&a+2改成&(a+2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-17 08:52:06 | 显示全部楼层
printf("这里是a+2的地址   %#x\n ",&a+2);
printf("这里是pArr+2的地址   %#x\n ",pArr+2);
上面的a+2前面多了一个&,就好像a不等于&a,
a=&a[0],类型是int*,而&a的类型是int*[5],所以&a+n,也就是指针变量的值增加或减少n*sizeof(指针指向的类型)大小,若a地址为12ff34,则&a+2为12ff34+4*5*2=12ff5c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-17 19:50:46 | 显示全部楼层
帅哥,你的&a+2,是先去a的首地址,然后在地址上加2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-18 01:57:34 | 显示全部楼层
赫斌的指针讲得非常好了,你用点心去理解,很容易的....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-18 02:46:14 | 显示全部楼层
你那里写错了吧
是a+2, &a+2就不是a[2]的地址了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-18 02:47:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-18 06:21:19 | 显示全部楼层
我只是路过打酱油的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-18 17:35:15 | 显示全部楼层
感恩无私的分享与奉献 :)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-5-18 22:24:05 | 显示全部楼层
M_vioce 发表于 2013-5-17 08:52
printf("这里是a+2的地址   %#x\n ",&a+2);
printf("这里是pArr+2的地址   %#x\n ",pArr+2);
上面的a+2前 ...

哦  那就是说a和a[0]  在内存中的地址 不一样 a里面保存的是a[0]地址  是这样吗
那a+2怎么就等于 &a[2]   这里还是没弄明白

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-18 22:26:35 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-18 23:49:44 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-19 00:02:50 | 显示全部楼层
有个问题一直没弄明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-23 22:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表