C语言-数组基础

本文介绍了C语言中数组的基础知识,包括数组的定义、初始化、遍历和作为函数参数使用。数组的下标从0开始,初始化时元素数量不能超过声明长度。未初始化的静态和外部数组元素默认为0,而自动类型的数组元素值不确定。在遍历数组时要注意避免越界,并且数组可以作为函数参数,或者数组元素单独传递给函数。函数参数接收数组时,可以指定或不指定数组长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组定义和声明初始化

数组在程序中是一块连续的,大小固定并且里面的数据类型一致的内存空间。

1、数组的下标均以0开始;

2、数组在初始化的时候,数组内元素的个数不能大于声明的数组长度;

3、如果采用第一种初始化方式,元素个数小于数组的长度时,多余的数组元素初始化为0;

#include<stdio.h>

int main()
{
	/*如下为3中数组初始化的方式*/
	/*第一种,数组元素个数小于数组长度时,多余的空间被赋值为0,即arr1[3]为0*/
	int arr1[4]={1,2,3};
	/*第二种,不规定数组长度,直接赋值*/
	int arr2[]={1,2,3};
	/*第三种,先规定长度,再一个一个赋值*/
	int arr3[4];
	arr3[0]=1;
	arr3[1]=2;
	arr3[2]=3;
	arr3[3]=4;
    return 0;
}

4、在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组的元素初始化值不确定。

以下为代码实验证明第四条。

/**********
*author: Yang Xu
*description: extern and static array
********/

#include<stdio.h>
#include<process.h>

/*外部(extern)变量b,和静态(static)外部变量c*/
int b[3];
static int c[3];

void showarray(int a[3])
{
	int i;
	for(i=0;i<=2;i++)
		printf("%d ",a[i]);
	printf("\n");
}

int main()
{
	/*自动类型的数组a*/
	int a[3];
	/*打印输出所有元素*/
	showarray(a);//自动类型,初始化值不确定
	showarray(b);//初始化值为0
	showarray(c);//初始化值为0
	if(!0)
	{
		/*静态(static)局部变量d*/
		static int d[3];
		showarray(d);//初始化值为0
	}
	system("pause");
	return 0;
}

数组的遍历

注意:

1、数组在遍历时一般用到循环遍历,遍历时注意不要越界。在VS2010中,越界之后,编译器不会报错,会出现一些奇怪的值。

2、引用数组时,例如arr[******],括号内不仅仅可以写数字,更可以是各种表达式,只要它们的值符合要求即可。


数组作为函数参数

1、整个数组当作函数参数,即把数组名称传入函数中

2、数组中的元素当作函数参数,即把数组中的参数传入函数中

注意

1、数组名作为函数实参传递时,函数定义处作为接收参数的数组类型形参既可以指定长度也可以不指定长度。

2、数组元素作为函数实参传递时,数组元素类型必须与形参数据类型一致。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值