当前位置: 代码迷 >> C语言 >> [求助]指针存放的地址值?
  详细解决方案

[求助]指针存放的地址值?

热度:134   发布时间:2006-02-27 15:49:00.0
[求助]指针存放的地址值?

main()
{int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p;
for(p=a[0];p<a[0]+12;p++)
{if((p-a[0])%4==0) /*此处p-a[0]不太明白,地址减地址是什么?*/
printf("\n");
printf("addr=%o,value=%4d\n",p,*p);
}getch();
}
不明白为什么执行之后是这样的
addr=177666,value= 1 /*为什么地址值在执行第二个数据的时候增加了四个字节呢,int型不是只占再两个字节吗?*/
addr=177670,value= 3
addr=177672,value= 5
addr=177674,value= 7

addr=177676,value= 9
addr=177700,value= 11
addr=177702,value= 13
addr=177704,value= 15

addr=177706,value= 17
addr=177710,value= 19
addr=177712,value= 21
addr=177714,value= 23

搜索更多相关的解决方案: 指针  addr  地址  value  int  

----------------解决方案--------------------------------------------------------

傻孩子 你用的8进制啊addr=177666 加一个字节就是addr=177667
再加一个字节,就进位了,变成addr=177670


----------------解决方案--------------------------------------------------------
真还有点傻,怎么这么不细心,谢谢了啊

----------------解决方案--------------------------------------------------------
  相关解决方案