1、1第第8章章 常用数据表达常用数据表达 23456#includestdio.h#include intint main()main()int int i,a10=1,2,3,4,5,6,7,8,9,10;i,a10=1,2,3,4,5,6,7,8,9,10;/*定义一个整型数组定义一个整型数组,数组名为数组名为a,a,并给数组初始化并给数组初始化*/for(i=0;i10;i+)for(i=0;i10;i+)printf(a%d printf(a%d=%-2d,i,ai);=%-2d,i,ai);/*aiai为数组的第为数组的第i i个元素个元素*/printf(n printf(n););
2、return 0;return 0;72.2.注意:注意:数组名由用户定义,规则与变量名相同,数组名由用户定义,规则与变量名相同,元素个数为常量表达式而元素个数为常量表达式而不能是变量表达式不能是变量表达式。如:如:intint n=5;int an;n=5;int an;数组的下标从数组的下标从0 0开始。如:开始。如:a10a10下标是从下标是从0 09 9,而不是而不是1-101-10。下标可以是整型常量或整型常量表达式。下标可以是整型常量或整型常量表达式 和其他变量一样,数组也必须先定义后使用。和其他变量一样,数组也必须先定义后使用。89(2)(2)一维数组赋值一维数组赋值如何给一维数
3、组赋值呢?可以有三种方法:如何给一维数组赋值呢?可以有三种方法:数组的初始化数组的初始化 程序中赋值程序中赋值 键盘中读入键盘中读入数组的初始化数组的初始化 在定义数组时对数组元素可赋以初值。在定义数组时对数组元素可赋以初值。例如:例如:static int a10=0,1,2,3,4,5,6,7,8,9;初始化时可以只对一部分元素赋初值。初始化时可以只对一部分元素赋初值。例如:例如:int a10=0,1,2,3,4;如果想使一个数组的元素值全部为如果想使一个数组的元素值全部为0.0.例如:例如:static int a10=0;在对全部数组元素赋初值时,可以不指定数组长度。在对全部数组元素
4、赋初值时,可以不指定数组长度。例如:例如:int a=1,0,3,5,7;10#include int main()int s10=1,2,3,4,5,6,7,8,9,10;/*定义数组定义数组s,并初始化并初始化*/int i=2,a3;/*定义数组定义数组a*/a0=si;/*为数组元素为数组元素a0赋值赋值*/a1=s2+i;a2=s2*i+3;printf(a0=%d a1=%d a2=%dn,a0,a1,a2);return 0;111213a0 a1 a2 a3 a4 a5 a6 a7 a8 a9Iamhappy1415#includeint main()char string=“
5、I Love China!”;/*定义数组并初始化定义数组并初始化*/printf(“%sn”,string);/*字符串输出字符串输出*/return 0;1617181925591421830 2021222324 例例8.7 二维数组程序举例二维数组程序举例25#includevoid main()int i,j,t;int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;printf(矩阵转置前矩阵转置前:n);for(i=0;i4;i+)/*输出矩阵输出矩阵*/for(j=0;j4;j+)printf(%3d,aij);printf(n);pri
6、ntf(n矩阵转置后矩阵转置后:nn);for(i=0;i4;i+)/*矩阵转置矩阵转置*/for(j=0;j4;j+)if(i=j)t=aij;aij=aji;aji=t;/*交换元素交换元素*/for(i=0;i4;i+)/*输出矩阵输出矩阵*/for(j=0;j4;j+)printf(%3d,aij);printf(n);262728#includeint main()int x;int*p;/*定义一个指针变量定义一个指针变量p*/p=&x;/*让指针变量让指针变量p指向指向x的地址的地址*/scanf(%d,&x);/*键盘中读入赋值给变量键盘中读入赋值给变量x*/printf(x=
7、%dn,*p);/*输出指针变量输出指针变量p所指的地址上的内容所指的地址上的内容*/return 0;29303132#includevoid 3334353637383940414243#includeint main()char*name=Liu,Fang,Zhang;int i;for(i=0;i3;i+)if(namei0=Z)printf(%sn,namei);return 0;name0 Liuname1 Fangname2 Zhang4445例例8.16 利用数组指针,输出一个二维数组。利用数组指针,输出一个二维数组。#includeint main()int a35=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;int i,j,(*p)5;p=a;for(i=0;i3;i+)for(j=0;j5;j+)printf(%dt,*(*(p+i)+j);printf(n);return 0;46