7.1.2一维数组的定义和引用1、定义类型名数组名[数组长度]数组长度为常量类型名:数组元素的类型数组名:数组(变量)的名称,标识符数组长度:常量表达式,给定数组的大小int a[10];定义一个含有10个整型元素的数组achar c[200];定义一个含有200个字符元素的数组cfloat f[5];定义一个含有5个浮点型元素的数组f
7.1.2 一维数组的定义和引用 1、定义 类型名 数组名[数组长度] 类型名:数组元素的类型 数组名:数组(变量)的名称,标识符 数组长度:常量表达式,给定数组的大小 int a[10]; 定义一个含有10个整型元素的数组 a char c[200]; 定义一个含有200个字符元素的数组 c float f[5]; 定义一个含有5个浮点型元素的数组 f 数组长度为常量
2、数组的内存结构值下标内存地址94028int a[10];84026假设系统规定int类型占用2个74024字节,则对于数组a,其内存64022分配形式5402044018只要知道了数组第一个元素的34016地址以及每个元素所需的字节24014数,其余各个元素的存储地址14012均可计算得到。0a4010数组名是一个地址常量,存放数组内存空间的首地址。不允许被修改
2、数组的内存结构 内存地址 下标 值 4028 9 4026 8 4024 7 4022 6 4020 5 4018 4 4016 3 4014 2 4012 1 a 4010 0 int a[10]; 假设系统规定int类型占用2个 字节,则对于数组a,其内存 分配形式 只要知道了数组第一个元素的 地址以及每个元素所需的字节 数,其余各个元素的存储地址 均可计算得到。 数组名是一个地址常量,存放 数组内存空间的首地址。不允许被修改
3、引用■先定义,后使用■只能引用单个的数组元素,不能一次引用整个数组数组名[下标]下标:整型表达式取值范围:[0,数组长度-1]下标不要越界int a[10];不能使用a[10]10个元素a[0]、a[1]、...a[9]■数组元素的使用方法与同类型的变量相同scanf("%d", &a[i]);count[i]++;temp = a[index]; a[index]= a[k]; a[k] = temp;printf("%d ", a[i]);
3、引用 ◼ 先定义,后使用 ◼ 只能引用单个的数组元素,不能一次引用整个数组 数组名[下标] 下标:整型表达式 取值范围:[0,数组长度-1] int a[10]; 10个元素:a[0]、a[1]、. a[9] ◼ 数组元素的使用方法与同类型的变量相同 scanf("%d", &a[i]); count[i]++; temp = a[index]; a[index]= a[k]; a[k] = temp; printf("%d ", a[i]); 下标不要越界 不能使用a[10]
区分数组的定义和数组元素的引用定义数组类型名数组名[数组长度]引用数组元素数组长度为常量数组名[下标]下标不要越界int a[10];a[0] = a[9] = 0;a[k] = temp;
定义数组 类型名 数组名[数组长度] 引用数组元素 数组名[下标] int a[10]; a[0] = a[9] = 0; a[k] = temp; 区分数组的定义和数组元素的引用 下标不要越界 数组长度为常量
7.1.3一维数组的初始化■定义数组时,对数组元素赋初值类型名数组名[数组长度]=【初值表}int a[10] = [1,2,3,4,5,6,7,8,9,10];a[0]=1, a[1]=2,... a[9]=10静态数组、动态数组的初始化staticint b[5] = {1, 2, 3, 4, 5];静态存储的数组如果没有初始化,所有元素自动赋0static int b[5];动态存储的数组如果没有初始化,所有元素的值不确定auto int c[5];等价与 int c[5];
7.1.3 一维数组的初始化 ◼ 定义数组时,对数组元素赋初值 类型名 数组名[数组长度] = {初值表}; int a[10] = {1,2,3,4,5,6,7,8,9,10}; a[0]=1, a[1]=2,. a[9]=10 ◼ 静态数组、动态数组的初始化 static int b[5] = {1, 2, 3, 4, 5}; 静态存储的数组如果没有初始化,所有元素自动赋0 static int b[5]; 动态存储的数组如果没有初始化,所有元素的值不确定 auto int c[5]; 等价与 int c[5];