开发网站的技术风险,乌海市住房城乡建设厅网站,怎样制作一个网站,营销型网站建设核心要素目录 为什么使用数组(Array)? 一维数组的定义 一维数组的初始化 一维数组元素的访问 一维数组元素的赋值 数组的逻辑存储结构 数组的物理存储结构 二维数组的定义和初始化 为什么使用数组(Array)? 一维数组的定义 一维 数组的定义 int a[10]; 定义一个有 10 个 int 型元素的… 目录 为什么使用数组(Array)? 一维数组的定义 一维数组的初始化 一维数组元素的访问 一维数组元素的赋值 数组的逻辑存储结构 数组的物理存储结构 二维数组的定义和初始化 为什么使用数组(Array)? 一维数组的定义 一维 数组的定义 int a[10]; 定义一个有 10 个 int 型元素的一维数组 – 在内存中分配连续的存储空间给此数组 为什么数组下标从 0 开始 – 使编译器的实现简化一点且下标的运算速度少量提高 问题如果希望下标从 1 到 10 而非从 0 到 9 怎么办 int a[ 11 ]; int a[ n ]; 最好用宏定义 # define N 10 int a[ N ]; # define N 11 int a[ N ]; 数组的 数据类型 ——每一元素占内存空间的字节数 数组的 存储类型 ——内存的动态、静态存储区或 CPU 的寄存器 一维数组在内存中占用的字节数为数组长度× sizeof 基类型 一维数组的初始化 未初始化的数组元素值是什么 静态 数组和 全局 数组自动初始化为0值否则是随机数 一维数组的初始化 int a[5] {62, 74, 56, 88, 90}; int a[5] {62, 74}; int a[5] {62, 74, 0, 0, 0}; int a[ ] {62, 74, 56, 88, 90}; 更高效的数组初始化方法 memset (a, 0, sizeof(a)); • 用 sizeof(a) 来获得数组 a 所占的内存字节数 • #include string.h 一维数组元素的访问 int a[5] {62, 74, 56, 88, 90}; 一维数组的引用 数组名[ 下标 ] 允许快速随机访问 引用时下标允许是 int 型变量或表达式 62 74 56 88 a[i] 一维数组元素的赋值 问题如何使两个数组的值相等 int a[4] {1,2,3,4}; int b[4]; b a; 方法2:通过循环语句赋值 int i; for (i0; i4; i) { b[i] a[i]; } 方法1:逐个元素赋值 b[0]a[0]; b[1]a[1]; b[2]a[2]; b[3]a[3]; 更高效的数组赋值方法 memcpy (b, a, sizeof(a)); • 数组 a 复制给数组 b #include string.h 数组的逻辑存储结构 一维数组 int a[5]; 用一个下标确定元素位置 二维数组 int b[2][3]; 用两个下标确定元素位置 数组的物理存储结构 二维数组的定义和初始化 int a[ ][4] {1,2,3,4,5,6,7,8,9,10,11,12}; int a[3][4] {1,2,3,4,5,6,7,8,9,10,11,12}; int a[ ][4] {{1,2,3},{4,5},{6}}; int a[3][4] {{1,2,3,0},{4,5,0,0},{6,0,0,0}};