7.12一维数组的定义和引用 1、定义 类型名数组名数组长度数组长度为常量 类型名:数组元素的类型 数组名:数组(变量)的名称,标识符 数组长度:常量表达式,给定数组的大小 int a[10] 定义一个含有10个整型元素的数组a char c[200 定义一个含有200个字符元素的数组c float f5]; 定义一个含有5个浮点型元素的数组f
7.1.2 一维数组的定义和引用 1、定义 类型名 数组名[数组长度] 类型名:数组元素的类型 数组名:数组(变量)的名称,标识符 数组长度:常量表达式,给定数组的大小 int a[10]; 定义一个含有10个整型元素的数组 a char c[200]; 定义一个含有200个字符元素的数组 c float f[5]; 定义一个含有5个浮点型元素的数组 f 数组长度为常量
2、数组的内存结构 内存地址下标值 nta[10]; 4028 4026 假设系统规定int类型占用2个 4024 字节,则对于数组a,其内存 4022 分配形式 4020 5 4018 只要知道了数组第一个元素的 4016 地址以及每个元素所需的字节40142 数,其余各个元素的存储地址4012 均可计算得到。 a4010 0 数组名是一个地址常量,存放 数组内存空间的首地址。不允许被修改
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] 不能使用a[10] int a[10]; 10个元素:ao]、a1 ■数组元素的使用方法与同类型的变量相同 scanf( %d",&a[] count[++, temp= aindex]; aindexakk]; ak=temp printf("%d",a0
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]=as9]=0 akk= temp
定义数组 类型名 数组名[数组长度] 引用数组元素 数组名[下标] int a[10]; a[0] = a[9] = 0; a[k] = temp; 区分数组的定义和数组元素的引用 下标不要越界 数组长度为常量
713一维数组的初始化 ■定义数组时,对数组元素赋初值 类型名数组名[数组长度]={初值表}; inta[10]={1,234,5,6,7,8,9,10} a0]=1,a[1=2y…a9=10 ■静态数组、动态数组的初始化 static int b5]={1,2,3,4,5}; 静态存储的数组如果没有初始化,所有元素自动赋0 static int b5] 动态存储的数组如果没有初始化,所有元素为随机值 auto int c[5];等价与intc[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];