cykefu 发表于 2012-12-5 17:08:05

请教下,关于指针的问题

本帖最后由 cykefu 于 2012-12-5 17:59 编辑

void main()
{
      int a = {9,8,7,6,5,4,3,2,1,0};
      int i, *pointer;
      pointer = &a;

      for(i=0; i<10; i++)
      {
                printf("%d\n", * (pointer + i * 4));
      }
}请问下,* (pointer + i * 4);这里为什么不是i*4呢,而是i,我的想法是,他累加一个数组成员 应该偏移4个字节才对吧,想不通,求解

huise865 发表于 2012-12-5 18:12:42

本帖最后由 huise865 于 2012-12-5 18:16 编辑

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

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


cykefu 发表于 2012-12-5 18:27:49

明白了,非常感谢

空python 发表于 2026-7-21 00:43:00

{:13_450:}

空python 发表于 2026-7-21 00:43:36

赞一个
页: [1]
查看完整版本: 请教下,关于指针的问题