例71 main() 运行结果: a0=l fint 1, a 5 a[l=2 a2]=3 for(=0;1<=4;1++) a {ai]=i+1 printf ( al%d-%dn”,i,aj) 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 例7.1 ❖ main( ) ❖ {int i, a[5]; ❖ for(i=0;i<=4;i++) ❖ { a[i]= i+ 1 ; ❖ printf (“a[%d]=%d\ n”, i, a[i]); ❖ } ❖ } 运行结果: a[0]=1 a[1]=2 a[2]=3 a[3]=4 a[4]=5
4数组大小的定义只能是常量,而不能是变量 或动态地定义 例72 注意 (1)C语言中,数组下标从0开始 main( (2)C语言不允许对数组的大小做动 态定义,如: f int n=5, an a[1]=100; printf(a[l=oodn'aLID 编译时指出: constant expression required in function main(主函数 中要求常量表达式) 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 4.数组大小的定义只能是常量,而不能是变量 或动态地定义。 例7.2: main( ) { int n=5, a[n]; a[1]=100; printf (“a[1]=%d\n”,a[1]); } 编译时指出:constant expression required in function main (主函数 中要求常量表达式) 注意: (1)C语言中,数组下标从0开始. (2)C语言不允许对数组的大小做动 态定义,如:
71.2一维数组元素的引用 令引用规则 1先定义,后使用。 2引用形式:数组名[下标] 3.下标可以是整、字符型的常量、变量或表 达式。 3引用方法:对具体元素而不是整个数组。如 int a[10] a[0]=a[b-a]+a[b3-96]+a[3]-a[2*2 相当于 a[0]=a[1]+a[2]+a[3}-a[4] 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 7.1.2 一维数组元素的引用 ❖ 引用规则: 1.先定义,后使用。 2.引用形式:数组名[下标] 3.下标可以是整、字符型的常量、变量或表 达式。 ❖ 3.引用方法:对具体元素而不是整个数组。 如: int a[10] a[0]=a[‘b’ - ‘a’] + a[‘ b’ -96] +a[3] - a[2*2] 相当于: a[0]=a[1]+ a[2]+ a[3]- a[4]
例73:对数组a顺序赋值,逆序输出 main() i int 1, a5 for(i=0;j<=4;i++) al for(1=4;1>=0 orin ntf("a[%d= a 运行结果: a4]=4a[3}=3a[2]=2a[l=1a[0 上一页下一页返回 第七章数组
上一页 下一页 返回 第七章 数组 例7.3:对数组a 顺序赋值,逆序输出 main( ) { int i, a[5]; for(i=0; i<=4; i++) a[i]=i; for(i=4;i>=0;i- -) printf( “a[%d]=%d\t”, i, a[i ]); } 运行结果: a[4]=4 a[3]=3 a[2]=2 a[1]=1 a[0]=0
71.3一维数组的初始化 实现的方法有: 1定义时对数组元素初始化 如: static int a[5}={1,2,3,4,5}; 2.初始化时只给部分元素赋值 如:inta[5]}={1,3,5};则只对前三个元素赋初值 ◆3.初始化时给全部元素赋0值 tI: static int a 51=10,0,0,0, 0) 或 static int a](静态型数组自动赋初值零) 4.对全部元素赋初值时可以不指出长度如 static int a5=( 2, 4,6,8,10) 或 static int a[]={2,46.8,10};效果一样 错例: static int b[j;没有指出长度,为无效定义。*/ 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 7.1.3 一维数组的初始化 实现的方法有: ❖ 1.定义时对数组元素初始化 如:static int a[5]={1, 2, 3, 4, 5}; ❖ 2. 初始化时只给部分元素赋值 如: int a[5]={1, 3, 5}; 则只对前三个元素赋初值 ❖ 3. 初始化时给全部元素赋0值 如: static int a[5]={0,0,0,0,0}; 或 static int a[5] (静态型数组自动赋初值零) ❖ 4. 对全部元素赋初值时可以不指出长度 如: static int a[5]={2,4,6,8,10}; 或 static int a[ ]={2,4,6,8,10}; 效果一样。 错例:static int b[ ]; /*没有指出长度,为无效定义。*/