指向多位数组元素的指针变量问题
程序代码:
#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++) { if((p-a[0])%4==0) printf("\n"); printf("%4d",*p); } printf("\n"); }
结果输出是:
1 3 5 7
9 11 13 15
17 19 21 23
为什么for语句里面的if((p-a[0])%4==0)会是对4求余,我的理解是p是指针,代表的是地址,整形变量占2个字节,要4个数换行的话,应该是对8求余才对,求高手解释下···