【C语言】数组(1):一维数组

1.数组的概念

数组是一组相同类型元素的集合

  • 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。
  • 数组中存放的多个数据,类型是相通的。
    数组分为一维数组,和多维数组,多维数组一般比较多见的是二维数组。

2.一维数组

2.1数组创建

一维数组创建的基本语法:

type arr_name[常量值]

存放在数组中的值为数组的元素,数组在创建的时候可以指定数组的大小和元素类型

  • type是存放数据的类型,可以是int char float
  • arr_name指的是数组的名字
  • [ ]中的常量值用来指定数组大小

比如想存储5个人的年龄,那就可以创建一个数组:

int age[5];

这个数组意思就是,age数组有5个元素,每个元素为int类型

2.2 数组的初始化

数组在创建的时候我们需要给一些初始值,这就成为初始化;数组的初始化一般使用大括号,将数据放在大括号中:

比如我们有一个大小为5的数组,把里面每个元素都给定初始值,这种就叫做完全初始化

// 完全初始化
int age[5] = { 1,2,3,4,5 };
char str[3] = { 'a', 'b', 'c' };

而假如只想给前面两个元素初始化,这就叫做不完全初始化,而剩下的元素默认初始化为0

// 不完全初始化
int age[5] = { 1,2 };
char str[3] = { 'a' };

:对于字符数组的初始化还可以使用字符串来初始化:

// 使用字符串初始化
char str1[5] = "abc";

2.3 数组的类型

去掉数组名留下的就是数组的类型。

int arr1[10];
int arr2[20];
char ch[5];

这里数组arr1的类型就是int[10],数组arr2的类型就是int[20],数组ch的类型就是cahr[5]

3. 一维数组的使用

3.1 数组下标

C语言规定,数组是有下标的并且是从0开始,数组有n个元素,那么最后一个元素的下标就是n-1,我们可以简单理解为数组里面元素的编号。
在这里插入图片描述
在C语言中,提供了一个下标访问操作符[ ],我们就可以通过这个操作符来访问数组里的元素。
比如要把数字:1打印到屏幕上,那这个数字在数组里的下标就是:0。

int main()
{
	int arr[5] = { 1,2,3,4,5 };
	printf("%d\n", arr[0]);
	return 0;
}

在这里插入图片描述

3.2 数组的输出

如果想把数组中的元素全部打印在屏幕上,可以使用循环:

int main()
{
	int arr[5] = { 1,2,3,4,5 };
	
	for (int i = 0; i < 5; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

在这里插入图片描述

3.3 数组的输入

同理,如果要给数组输入元素的话,也可以使用循环来完成:
这里输入:1 2 3 4 5

int main()
{
	int arr[5] = { 0 };
	
	for (int i = 0; i < 5; i++)
	{
		scanf("%d", &arr[i]);
	}
	return 0;
}

在这里插入图片描述

4. 一维数组在内存中的存储

打印数组元素的地址:

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("arr[%d] = %p\n", i, &arr[i]);
	}
	return 0;
}

在这里插入图片描述
数组随着下标的增长,地址是由低到高变化的,并且每个相邻元素之间相差4,这是因为一个整形是4个字节,所以可以知道:数组在内存中是连续存放的

5. 计算数组的个数

sizeof是一个操作符,可以计算类型或者变量大小,也可以计算数组的大小。
比如:

int main()
{
	int arr[10] = { 0 };
	printf("%d\n", sizeof(arr));
	return 0;
}

在这里插入图片描述
这里得到的就是说数组所占内存空间的大小,单位是字节

而数组中所有元素类型都是相同的,我们还可以计算数组元素的个数:

int main()
{
	int arr[10] = { 0 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf("%d\n", sz);
	return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值