鱼C论坛

 找回密码
 立即注册
查看: 4393|回复: 2

请教下,关于指针的问题

[复制链接]
回帖奖励 1 鱼币 回复本帖可获得 1 鱼币奖励! 每人限 1 次(中奖概率 10%)
发表于 2012-12-5 17:08:05 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 cykefu 于 2012-12-5 17:59 编辑
  1. void main()
  2. {
  3.         int a[10] = {9,8,7,6,5,4,3,2,1,0};
  4.         int i, *pointer;
  5.         pointer = &a[0];

  6.         for(i=0; i<10; i++)
  7.         {
  8.                 printf("%d\n", * (pointer + i * 4));
  9.         }
  10. }
复制代码
请问下,* (pointer + i * 4);这里为什么不是i*4呢,而是i,我的想法是,他累加一个数组成员 应该偏移4个字节才对吧,想不通,求解
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-5 18:12:42 | 显示全部楼层
本帖最后由 huise865 于 2012-12-5 18:16 编辑

指针+n等于是物理地址加上了sizeof(指针所指向的变量类型)*n

这样说你理解吗?:lol
int型的指针+1  实际上 等于  指针+(4*1)


小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-12-5 18:27:49 | 显示全部楼层
明白了,非常感谢
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-2-9 20:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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