C 语言之二维数组(详细版) | 您所在的位置:网站首页 › c语言建立一维数组 › C 语言之二维数组(详细版) |
目录 1.二维数组的定义和初始化 2.二维数组在内存中的存储 3.二维数组的使用 4.数组与函数 1. 二维数组是定义和初始化1.1 二维数组的定义 定义类型:类型名 数组名[ 行表达式 ][ 列表达式];行与列用常量表达式。 1.2 二维数组的初始化 /** 定义数组 */ int main() { int ar[3][4]; // 3 行 4列 未初始化 char br[3][4]; double cr[3][4]; return 0; } 2. 二维数组在内存中的存储2.1 二维数组的逻辑表示 注:一个二维数组,在本质上是有多个一维数组构成。(每一个一维数的大小必须相同) 例如:定义 int ar[ 3 ][ 4 ] 的二维数组,它是由 3 个一维数组组成,每个一维数组的大小是 4 个整型元素。可以只对部分元素赋值,未赋值的元素自动取 0 值。 2.1 二维数组的物理表示(按行优先存储) 注: 如果对二维数组的初始化,那么第一维的长度是可以缺省的,但是第二维不可缺省。 int main() { int ar[][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; // 3 行 4 列 int br[][4] = { {1,2},{3,4},{5,6} }; // 3 行 4 列 数字不足自动补 0 int cr[][4] = { 1,2,3,4,5,6,7,8 }; // 2 行 4 列 return 0; }调试结果 3. 二维数组的使用二维数组中的元素是通过使用下标(即数组的行索引和列索引)来访问的。 示例 #include /** 二维数组的应用 */ int main() { int ar[3][4]; // 定义二维数组 int x = 0; for (int i = 0; i ar[i][j] = ++x; // 初始化 } } for (int i = 0; i printf("&ar[%d][%d]=>%#p %d\n",i, j, &ar[i][j], ar[i][j]); } } return 0; }运行结果 总结:C 语言中的多维数组基本的定义是以数组作为元素构成的数组,二维数组的数组元素是一维数组,三维数组的数组元素是一个二维数组,以此类推。也就是说,多维数组用的是一个嵌套的定义。 4. 数组与函数①. 示例一:一维数组作为函数的形参 #include #include #include /** 初始化函数 */ //void Init_Array(int ar[], int n) 数组名退化为指针 void Init_Array(int* ar, int n) { assert(ar != nullptr && n > 1); // 断言机制 如果为真则继续进行以下代码 for (int i = 0; i assert(ar != nullptr && n > 1); for (int i = 0; i int ar[10]; int n = 10; Init_Array(ar, n); Print_Array(ar, n); return 0; }运行结果 ②. 示例二:二维数组作为函数的形参 #include #include #include /** 初始化函数 */ void Init_Array(int ar[][4], int row, int col) { for (int i = 0; i ar[i][j] = rand() % 100; } } } /** 打印函数 */ void Print_Array(int ar[][4], int row, int col) { for (int i = 0; i printf("%5d", ar[i][j]); } printf("\n"); } printf("\n"); } int main() { int row = 3, col = 4; int ar[3][4]; Init_Array(ar, row, col); Print_Array(ar, row, col); return 0; }运行结果 一维数组的知识点详见《C语言之一维数组(详细版)》,请点击此处进行查阅… |
CopyRight 2018-2019 实验室设备网 版权所有 |