内容正文:
7.2 二维数组
7.2.1二维数组的定义
它的一般格式是:
类型说明符 数组名[常量表达式1][常量表达式2]
其实我们可以这样对二维数组理解,二维数组a[3][4]理解为:有三个元素a[0]、a[1]、a[2],每一个元素是一个包含4个元素的一维数组。如图7-3所示。
二维数组的元素在内存中的存放顺序:按行存放,即:先顺序存放第一行的元素,再存放第二行的元素。如图7-4所示。(最右边的下标变化最快,第一维的下标变化最慢)。
下一页
返回
7.2 二维数组
7.2.2二维数组元素的引用
数组名[下标1][下标2]
再如float a[2][3]; 有6个元素,按如下方式引用各元素:
a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2]
上一页
下一页
返回
7.2 二维数组
7.2.3二维数组元素的初始化
static int a[2][3] = {{1,2,3},{4,5,6}};是对数组的初始化,同样二维数组的初始化也可以分下面几种。
1.分行赋值,例如:
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
2.全部数据写在一个大括号内,例如:
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
3.部分元素赋值,例如:
int a[3][4] = {{1},{5},{9}};
4.如果对全部元素赋初值,则第一维的长度可以不指定,但必须指定第二维的长度。
上一页
下一页
返回
7.2 二维数组
7.2.4二维数组应用举例
例7.7 有一个3×4的矩阵,要求编程序以求出其中值最大的那个元素的值及其所在的行号和列号。
其N-S图如图7-5所示。
上一页
下一页
返回
7.2 二维数组
main()
{ int i,j,row=0,colum=0,max;
static int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max = a[0][0];
for(i=0;i<=2;i++) /* 用两重循环遍历全部元素 */
for(j=0;j<=3;j++)
if (a[i][j]>max )
{ max = a[i][j];
row = i;
colum = j;
}
printf("max=%d, row=%d, colum=%d
",max,row,colum);
}
上一页
返回
7.3 字符数组与字符串
7.3.1字符数组的定义和基本操作
1.字符数组的定义
我们知道数组分为整型,实型,字符型数组,整型,实型我们用过。所谓字符数组是指存放字符数据的数组,每一个元素存放一个字符。
它的定义形式为:
char 数组名[<常量表达式>]
下一页
返回
7.3 字符数组与字符串
2.字符数组的初始化
字符数组的初始化同样分为以下几种。
(1)逐个元素初始化
(2)初始化数据少于数组长度,多余元素自动为“空”(‘\0’,二进制0)。
(3)指定初值时,若未指定数组长度,则长度等于初值个数。
3.字符数组的引用
引用方法同整型数组,但引用一个元素,得到一个字符。
上一页
下一页
返回
7.3 字符数组与字符串
7.3.2字符数组的整体操作
1.字符串的操作
(1)C语言中,字符串作为字符数组处理。字符数组可以用字符串来初始化,例如:
static char c[ ] = {"I am happy"};也可以这样初始化:(不要大括号)
static char c[ ] = "I am happy";
(2)字符串在存储时,系统自动在其后加上结束标志‘\0’(占一个字节,其值为0)。但字符数组并不要求其最后一个元素是‘\0’。
上一页
下一页
返回
7.3 字符数组与字符串
2.字符串的输入输出
(1)用“%c”格式符逐个输入输出。
(2)用“%s”格式符按字符串输入输出。
7.3.3常用字符串处理函数
在C的函数库中,提供了一些字符串处理函数。
(1)puts()函数:输出字符串(以'\0'结尾)。
(2)gets()函数:输入字符串到数组。例如:
static char str[12];
gets(str);puts(str);
上一页
下一页
返回
7.3