C语言之数组

目录

一、一维数组 

1、一维数组的定义

2、一维数组初始化

3、一维数组的引用

4、一维数组程序举例

二、二维数组

1、二维数组的定义

2、二维数组的初始化

3、二维数组的引用

4、二维数组的举例

三、字符数组

1、字符数组的定义

2、字符数组的初始化

3、字符数组的输入输出


所谓数组就是一组具有相同数据类型的数据的有序集合。这里主要介绍一维数组、二维数组以及字符数组。

一、一维数组 

1、一维数组的定义

一般形式:类型说明符 数组名[常量表达式];   其中,类型说明符指数据的类型,数组名命名规则和变量名相同,遵循标识符命名规则,常量表达式指明数组中元素的个数,必须大于零。 例如:int a[10];float b[10];

2、一维数组初始化

在数组定义时为数组元素赋初值称为数组初始化。初始化方法如下:

  1. 在定义数组时对数组元素赋以初值。例如,int a[10]={2,3,5,6,7,18,20,45,43,90};
  2. 可以只给一部分元素赋值,其他的按零来处理。例如,int a[10]={0,1,2,3,4};表示只给前面五个元素赋值,后五个元素值为零。
  3. 对全部数组元素赋初值时,可以不指定数组长度。例如,int a[ ]={1,2,3,4,5};
  4. 一维数组赋初值的个数不能超过数组总元素的个数。例如,int a[3]={1,2,3,4};是错误的。

3、一维数组的引用

  1. C语言规定,只能引用单个数组元素,不能一次引用整个数组。数组元素的引用形式:数组名[下标] 。下标是指在数组中第几个元素,可以是整型常量、整形变量和整型表达式,下标的值是数组元素序号,从0开始到n-1结束。注意区分数组定义和数组元素引用(数组定义时有类型说明符)。
  2. 可以对数组中任何一个元素进行单独的输入和输出,每个元素等同于一个普通变量。
  3. 数组的引用离不开循环,将数组的下标作为循环变量,通过循环就可以对数组的所有元素逐个进行处理。

4、一维数组程序举例

例如,用数组来处理求Fibonacci数列问题。程序如下:

#include<stdio.h>
void main()
{
	int i;
	int f[20]={1,1};
	
	for(i=2;i<20;i++)
		f[i]=f[i-2]+f[i-1];
		
	for(i=0;i<20;i++)
	{
		if(i%5==0) printf("\n");
		printf("%12d",f[i]);
	}
	
	printf("\n");
}

运行结果如下: 

二、二维数组

1、二维数组的定义

  1. 一般形式:类型说明符 数组名[常量表达式1] [常量表达式2];其中,常量表达式1为行数,常量表达式2为列数,例如:float a[3][4]; int b[5][6];
  2. 理解:二维数组可被看作一种特殊的一维数组,它的元素又是一个一维数组。

2、二维数组的初始化

二维数组初始化的方法:

  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}};

3、二维数组的引用

  1. 二维数组引用形式:数组名 [下标1][下标2];其中,下标1和下标2可以是整型常量、整形变量和整型表达式,其编号从零开始。
  2. 二维数组采用双重循环方式进行输入和输出。

4、二维数组的举例

例:有一个3*4的矩阵,求出其中值最大的那个元素的值,以及其所在的行号和列号。程序如下:

#include<stdio.h>
void main()
{
	int i,j,row=0,column=0,max;
	int a[3][4]={{1,2,3,4},{5,6,7,8},{-1,2,3,-5}};
	max=a[3][4];
	for(i=0;i<=2;i++)
	{
		for(j=0;j<=3;j++)
		{
			if(a[i][j]>max)
			{
				max=a[i][j];
				row=i;
				column=j;
			}
		}
	}
	printf("max=%d,row=%d,column=%d",max,row,column);
}

//运行结果为 max=8,row=1,column=3

三、字符数组

1、字符数组的定义

  1. 用来存放字符数据的数组是字符数组,C语言用字符数组存放字符串,字符数组中的各元素依次存放字符串的各字符。
  2. 一般格式:char 数组名[常量表达式];例如:char a[6];
  3. 字符串实际占有单元的数量等于字符串长度+1,定义时注意考虑元素总个数应比实际长度多1。

2、字符数组的初始化

  1. 用单个字符对字符数组初始化。例如:char c[6]={'C','h','i','n','a','\0'};
  2. 用字符串常量对字符数组初始化。例如:char str[6]={"China"}; char str[6]="China"; char str[]="China";

3、字符数组的输入输出

  1. 单个字符输入输出(用格式符%c或字符输入函数)
  2. 字符串整体或部分输入输出(用格式符%s)。例如:char str[6]; scanf("%s",str);
  3. 注意字符数组输入输出项必须是以字符串的地址形式出现,只能输入不包括空格、\t和\n的字符串,输入时数组名前不加&符号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝 颜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值