资源描述:
《C语言 多维、字符数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章数组5.2多维数组5.3字符数组多维数组引例:一页纸写着两个字符,如何存放这两个字符?一页纸写着三行字符,每行两个字符,如何存放这些字符?有一本书,共四页,每页纸写着三行字符,每行两个字符,如何存放这些字符?charch[2];charch[3][2];charch[4][3][2];多维数组(定义)inta[2];inta[3][2];inta[4][3][2];[存储类别]类型名数组名[常量表达式1][常量表达式2]……先定义,后使用多维数组定义的一般形式:二维数组(引用)设inta[3][2];,则这个二维数组的6个元素分别为:数组名[行下标][
2、列下标](注:下标:整型常量、变量、或表达式)先定义,后使用二维数组元素引用的一般形式:a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]inta[3][2];(3行2列,6个元素)a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]二维数组的元素在内存的存储顺序是:按行存放如何表示数组a的地址?&a[0][0]或者a二维数组(引用)注:数组元素的使用方法与同类型的变量相同引用:数组名[行下标][列下标](下标
3、:整型常量、变量、或表达式)例:设inta[3][2];,则给数组元素a[0][0]赋值1如何实现,输出数组元素a[0][0]的值如何实现呢?给每个数组元素输入值如何实现,输出所有数组元素的值如何实现呢?按矩阵格式输出所有数组元素的值如何实现?二维数组的初始化inta[3][3]={1,2,3,4,5,6,7,8,9};inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};inta[][3]={1,2,3,4,5,6,7,8,9};inta[][3]={{1,2,3},{4,5},{9}};inta[][3]={{1,2,3},{4,5}
4、,{6}};能写成inta[3][]={{1,2,3},{4,5},{6}};吗?这个数组中共包含几个元素?a[1][2]的值是多少?例:定义一个3*2的二维数组a,数组元素的值由下式给出,按矩阵的形式输出a。a[i][j]=i+j(0<=i<=2,0<=j<=1)#includevoidmain(){inta[3][2],inti,j;for(i=0;i<3;i++)for(j=0;j<2;j++)a[i][j]=i+j;for(i=0;i<3;i++){for(j=0;j<2;j++)printf(“%4d”,a[i][j]);prin
5、tf(“”);}}例:计算矩阵A2×3的转置矩阵AT#includemain(){inta[2][3]={{1,3,5},{2,4,6}};inti,j,b[3][2];for(i=0;i<2;i++){for(j=0;j<3;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("");}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%5d",b[i][j]);printf("");}}a[i][j]的值是b[j][i]的值字符数组(数组的应用
6、)C中不使用字符串变量,而使用字符数组来处理字符串。定义:char字符数组名[常量表达式];charstr[3];引用:字符数组名[下标]str[0],str[1],str[2]#includemain(){charc[12];inti;c[0]='H';c[1]='o';c[2]='w';c[3]='';c[4]='a';c[5]='r';c[6]='e';c[7]='';c[8]='y';c[9]='o';c[10]='u';c[11]='?';for(i=0;i<12;i++)printf("%c",c[i]);printf(""
7、);}printf(“%s”,c);字符串(数组的应用)初始化:charstr[5]={'h','e','l','l','o'};charstr[6]={'h','e','l','l','o'};charstr[]={'h','e','l','l','o',' '};charstr[]={"hello"};charstr[]="hello";charcolor[5][7]={“red”,”yellow”,”green”,”black”,”white”};charcolor[][7]={“red”,”yellow”,”green”,”black”,”whit
8、e”};见书122页字符数组的输入charstr[1