第7章数组数组是同类元素的集合、占据连续的存储空间,数内容摘要:

级别的元素”都是连续存放的。 2维 3维等只是个逻辑概念,其元素对应着物理上是一维的、不同大小的连续内存块。 使用“最小的元素”如同使用基本数据类型变量一样。 4)二维数组的初始化 初始化二维数组时 {}可以内嵌、内嵌的 {}代表行;所赋给的值是 按行按列 对号入座;缺少的内嵌 {}或 {}内未指定的为 0。 如: int a[3][4]={{1},{5},{9}}。 //每行首个分别为 1,5,9其余为 0 static int a[3][4]={{1},{0,6},{0,0,11}}。 int a[3][4]={{1},{5,6}}。 //第三行全为 0 static int a[3][4]={{1},{ },{9}}。 //第二行全为 0 对二维数组的全部元素赋初值时,可以不指定第一维的长度,但不得省去第二维的长度。 如: static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}。 可以写成: static int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12}。 同样, static int a[ ][4]={{0,0,3},{ },{0,10}}。 也是正确的 常采用如下方式将所有元素初始化为 0: int a[5][6]={};或 int a[5][6]={0}。 对二维数组常采用二重循环访问。 二维数组的常应用于矩阵元素查找、矩阵运算、特殊矩阵的生成等。 例 将二维数组行和列的元素互换后存到另一个数组中。 include void main( ) { static int a[2][3]={{1,2,3},{4,5,6}}。 static int b[3][2], i, j。 printf(array a:\n)。 for (i=0。 i=1。 i++) { for ( j=0。 j=2。 j++) { printf(%5d,a[i][ j])。 b[ j][i]=a[i][ j]。 } printf(\n)。 } printf(array b:\n)。 for (i=0。 i=2。 i++) { for ( j=0。 j=1。 j++) printf(%5d,b[i][ j])。 printf(\n)。 } } 例 输出一个 3 4数组中每行中的最大元素之值及其位置。 include void main( ) { int i,j,c,max。 static int a[3][4]={{6,5,11,3},{8,9,4,7},{2,13,1,10}}。 for (i=0。 i=2。 i++) { max=a[i][0]。 c=0。 for (j=0。 j=3。 j++) if (a[i][j]max){max=a[i][j]。 c=j。 } printf(max=%2d,row=%d,colum=%d\n,max,i+1,c+1)。 } } 输出结果: max=11, row=1, colum=3 max= 9, row=2, colum=2 max=13, row=3, colum=2 字符数组与字符串 C语言没有字符串变量、 C编译以 一维字符数组 的方式处理字符串;字符数组的 最后一个元素为 ’ \0’ 、作为字符串的结束标志。 第二章讨论过涉及字符操作的几个库函数,有 控制台与 流 操作、 单个字符 与 字符串 操作之分。 函数原型及功能简介如下: int getch(void)。 //控制台操作、无回显 (单个字符输入操作 ) int getche(void)。 //控制台操作、有回显 (单个字符输入操作 ) int getchar(void)。 //stdin流操作、有回显 (单个字符输入操作 ) int putchar(char ch)。 //stdout流操作 (单个字符输出操作 ) int scanf(“%c”…)。 // stdin流操作 (单个字符输入操作 ) int printf(“%c”…)。 // stdout流操作 (单个字符输出操作 ) int scanf(“%s”…)。 // stdin流操作 (字符串输入操作 ) int printf(“%s”…)。 // stdout流操作 (字符串输出操作 ) 字符数组的逐个字符操作 例 从键盘输入一个字符串 (只看到 *号 ),回车键结束,并将字符串在屏幕上输出。 include include void main( ) {int i。 static char str[80]。 for(i=0。 i80。 i++) { str[i]=getch()。 //逐次给数组元素 str[i]赋值,不回显 printf(*)。 //以星号代替输入字符的个数 if(str[i]==„\x0d‟) break。 } //若输入回车则终止循环 printf(\n)。 i=0。 while(str[i]!=39。 \x0d39。 ) printf(%c,str[i++])。 //逐次输出字符数组的各个元素 printf(“\n”)。 } 例 字符数组初始化及用 scanf(“%s”…) 输入字符串。 include void main( ) {int i。 char str1[12]={39。 c39。 ,39。 a39。 ,39。 i39。 ,39。 39。 ,39。 y39。 ,39。 i39。 ,39。 39。 ,39。 h39。 ,39。 o39。 ,39。 n39。 ,39。 g39。 }。 char str2[]=cai yi hong。 char str3[][5]={cai ,yi ,hong}。 char str4[12]。 printf(%s\n%s\n%s\n,str1,str2,str3)。 printf(%s\n%s\n%s\n,str3[0],str3[1],str3[2])。 printf(。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。