向高手求教!
下面是一个程序,程序本身没有问题,很简单,问题在于运行结果。这个程序是利用指针变量输出二维数组元素的值。
#include<stdio.h>
void 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++)
{
printf("addr=%o,value=%2d\n",p,*p);
}
}
程序就这个,很简单,运行结果如下:
addr=236,value=1
addr=240,value=3
addr=242,value=5
addr=244,value=7
addr=246,value=9
addr=250,value=11
addr=252,value=13
addr=254,value=15
addr=256,value=17
addr=260,value=19
addr=262,value=21
addr=264,value=23
我的问题就在结果的前半部分addr上,Turbo C中int型的数据占两个字节,那第一个元素存放在地址236里,第二个元素应该放在238里,为什么直接存放在240里了,而且246,256也是直接蹦到250,260,而跳过了248,258.但是其他的都是两个字节两个字节的改变的,这是怎么回事?还望各位高手帮下忙,谢谢了。