标准没有明确保证n维数组中的所有元素都是相邻的,但可以使用C语言的行优先与列优先存储方式来实现连续存储。
代码示例:
//行优先存储方式 int a[2][3] = { {1, 2, 3}, {4, 5, 6} }; int *p = &a[0][0]; for (int i = 0; i < 6; i++) { printf("%d ", *(p + i)); }
//列优先存储方式 int b[2][3] = { {1, 2, 3}, {4, 5, 6} }; int *q = &b[0][0]; for (int i = 0; i < 6; i++) { printf("%d ", *(q + i * 2)); }