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
----------------解决方案--------------------------------------------------------
傻孩子 你用的8进制啊addr=177666 加一个字节就是addr=177667
再加一个字节,就进位了,变成addr=177670
----------------解决方案--------------------------------------------------------
真还有点傻,怎么这么不细心,谢谢了啊
----------------解决方案--------------------------------------------------------