指针与二维数组的问题_1
#include <stdio.h> int main() { int a[3][4] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23}; int *p = a[0]; for ( ; p <= a[0] + 11; p++) { if ((p - a[0])% 4 == 0) // ① { printf("\n"); } printf("%4d", *p); } return 0; }
①每输出四个数换一行,每一次P++,它的地址都会增加2或者4(int型字节长是2字节或者4字节),但是在P - a[0]时,它减完输出的其实是位移(我理解为第几个数)。
浙公网安备 33010602011771号