C语言入门【一维数组】

本文详细介绍了C语言中一维数组的概念、创建、初始化、下标使用、内存存储以及sizeof操作在计算元素个数的应用,帮助读者掌握基本的数组操作技巧。
摘要由CSDN通过智能技术生成

1. 数组的概念

是由多个相同类型的(数据/元素)所组成的集合;
由此我们可以得知。

1.数组的元素可以是一个或者多个,但一定不能是0个
2.元素的类型一定是相同的。

数组分为一维数组和多维数组,多维数组中比较常见的是二维数组

2. 一维数组

2.1 一维数组的创建

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

type ArrName[常量值];

    type是数组中所数据的类型,可以说char、int、float等,也可以是自己创建的类型。
    ArrName是数组的名字,这根据实际情况,取有意义的就可以了。
    []中的常量值是决定数组的大小的,根据实际情况取对应的值就可以了。

例如

int name[30];//班级学生名字
int arr[10];
char ch[10];

2.2 一维数组数组的初始化

在创建数组的时候需要设立初始值,这一行为被称之为初始化。
怎么初始化?
用一般用大括号{} 来初始化,将数据存入大括号内。
一维数组初始化一共有两种;

//完全初始化:[]中的常量值是多少,就设立多少个元素
int arr[5] = {1,2,3,4,5};

//不完全初始化:设立的元素个数比[]中的常量值小
int arr[5] = {1};//未被手动初始化的元素会自动初始化为0

//错误的初始化:设立的元素个数比[]中的常量值大
int arr[3] = {1,2,3,4};//这样会造成越界访问

一维数组在初始化时可以省略**[]中的常量值**,C语言会根据初始化元素的个数来推断出数组元素个数的多少。

int arr[] = {1,2,3,4}//C语言会推断出数组元素个数为4

2.3 一维数组的类型

数组也有类型,数组的类型是一直自定义类型,将数组名去掉,留下来的就是数组的类型。
例如

例如 char arr1[10]; int arr2[10]; short arr3[10];
arr1的类型就是char [10];arr2的类型就是int [10];同理,arr3的类型也就是 short [10]。

2.4 一维数组的使用

我们将学习一维数组的基本语法,一维数组可以存放数据,存放的目的就是为了对数据进行操作,那我们该如何使用一维数组来对数据进行操作呢?

2.4.1 数组下标

C语言规定数组是有下标的,下标从0开始,假设一个数组里有n个元素,那么第n个元素的下标就为(n-1),下标就类似与数组元素的编号。

例如
int arr[10] = {1,2,3,4,5,6,7,8,9,10};在这里插入图片描述

C语言给数组的访问提供了一个操作符[],这个操作符叫做下标引用操作符
有了下标引用操作符就可以轻松的访问到数组的元素,例如我要访问下标为4的元素,我们就可以直接使用arr[4],如果要访问的是下标为9的元素,那就直接使用arr[9]

代码如下:
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("arr[5] = %d\n", arr[4]);//5
	printf("arr[9] = %d\n", arr[9]);//10
	return 0;
}

运行结果

在这里插入图片描述

2.4.2 打印数组元素

如果我们想要访问整个数组该怎么办呢?
那我们就产生数组每个元素的下标就好啦,我们直接使用for循环产生0~9的下标,接下来在数组访问就好啦。

代码如下:
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

运行结果:

在这里插入图片描述

2.4.3 输入数组的元素

明白了数组的访问,我们当然也可以根据自己的需求进行输入啦。

代码如下
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	for (int i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

运行结果:

在这里插入图片描述

2.5 一维数组如何存储的?

有了前面的知识,我们使用数组就没什么问题啦,但如果我们要更深入地了解数组,那最好了解数组在内存中是如何存储的。

从0到9打印数组元素的地址:

#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

	for (int i = 0; i < 10; i++)
	{
		printf("arr[%d] = %p\n", i, &arr[i]);
	}
	return 0;
}

运行结果:

在这里插入图片描述
根据运行结果我们看到,随着数组下标的增长,数组元素地址是由低到高增长的,而且两两相邻的元素之间相差4个字节(因为int类型大小为4个字节);由此,我们可以得出结论:数组在内存中是连续存放的,这就在后面为我们使用指针访问数组奠定了基础

2.6 sizeof计算元素个数

在遍历数组时,我们会想知道数组的元素个数,C语言有办法使用程序计算来知道数组的个数吗?
有;可以使用sizeof
sizeof是C语言的关键字,是用来计算类型和变量的大小,其实也可以用来计算数组的大小。

计算过程

sizeof计算数组大小
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("sizeof(arr) = %d", sizeof(arr));
	return 0;
}

这里的输出结果为40,计算的是数组占内存空间的总大小,单位是字节(byte)
在这里插入图片描述

sizeof计算数组元素大小

因为我们知道数组每个元素的类型都是相同的,所以我们计算出一个元素的所占字节的大小,就可以计算出数组的元素个数,我们这里计算第一个元素就可以啦。

#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("sizeof(arr[0]) = %d", sizeof(arr[0]));
	return 0;
}

在这里插入图片描述

sizeof计算元素个数
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf("数组的元素个数为 %d", sz);
	return 0;
}

在这里插入图片描述
以后我们在代码编程中需要数组元素个数的时候就不用固定死了,使用上面的计算,不管数组怎么变,我们都能得出相应的数组元素个数啦。

结语

感谢您能阅读完此片文章,如果有任何建议或纠正欢迎在评论区留言。如果您认为这篇文章对您有所收获,点一个小小的赞就是我创作的巨大动力,谢谢!

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值