#include <stdio.h> int main() { int arr[2][2] = {1,2,3,4}; //等价于{{1,2},{3,4}}; for (int i = 0; i < 2; i++) { for (int j = 0 ; j < 2; j++) { int *ptr; ptr = &arr[i][j]; printf("%p %d ",ptr, arr[i][j]); } } return 1; }
本地输出结果 0018FF38 1 0018FF3C 2 0018FF40 3 0018FF44 4
多维数组的的每个维度实际上等维界定线性表。--严蔚敏数据结构
当多维数组维度n=1的时候,n维数组就退化为定长的线性表--严蔚敏数据结构
例如 arr[1][n] ={1,2,3,4,5...n} 实际上就是 arr[n] = {1,2,3,4,5...n}的一维数组 --严蔚敏数据结构
在c语言里,一个二维数组类型可以定义为其分量类型为一位数组类型的一维数组类型。
一个n维数组类型可以定义为其数据元素为n-1维数组类型的一维数组类型)。--严蔚敏数据结构
以上数组里元素的指针连续性刚好印证c语言的数组是行序存储这一说法。