C语言——一维数组

一维数组

一、一维数组的概念

一维数组是C语言中的一种数据结构,用于存储一系列相同类型的元素。它是由连续的内存位置组成的,每一个元素都对应一个唯一的索引值,通过索引可以访问和操作数组中的元素。

一维数组可以存储各种类型的元素,例如整型、浮点型、字符等。在声明一维数组时,需要指定元素的类型和数组的大小。数组的大小决定了该数组可以容纳多少个元素。

一维数组的索引从0开始,依次递增。通过使用索引,可以访问数组中特定的元素。例如对于一个包含十个元素的整型数组,该数组中的第一个元素索引为0,最后一个元素索引为9。

使用一维数组可以方便地存储和处理大量数据。它可以用于各种编程任务,如存储学生成绩、实现排序算法等。再通过循环结构遍历整个数组,并对其中的元素进行操作,进而实现更多更复杂的功能。

在使用一维数组时,我们要注意避免越界访问,即要避免访问数组以外的元素。越界访问可能导致程序崩溃或其它不可预测的结果。所以,在编写代码时务必确保数组的索引值在合法范围内。

二、一维数组的声明和初始化

2.1 声明

首先需要指定数组的数据类型和数组的名称,然后用方括号[ ]指定数组的大小。

举例:

int arr[5]//声明了一个数据类型为整型、数组名称为arr、数组长度为5的数组

2.2 初始化

2.2.1.在声明时进行初始化:在声明数组时,指定了数组的大小后,使用花括号将初始值包围起来。

举例:

1.完全初始化
int arr[5]={1,2,3,4,5};
//数组中的五个元素分别为“1,2,3,4,5”

2.部分初始化
int arr[5]={1};
//数组中的第一个元素为1,其它默认为0
//如果数组类型为char,则其余元素为\0

3.错误的初始化
int arr[5]={1,2,3,4,5,6,};
//定义数组长度为5,但赋给的元素有6个,超出数组的大小

2.2.2.声明后初始化:使用赋值语句对数组元素逐个赋值。

举例:

float arr[3];
arr[0]=1.1;
arr[1]=2.2;
arr[2]=3.3

 2.2.3.动态初始化:如果数组的大小是在运行时确定的,可以使用动态内存分配函数来动态地初始化数组。

举例:

int n;
printf("请输入数组大小:");
scanf("%d", &n);

int *myArray = (int*)malloc(n * sizeof(int));
// 然后可以通过赋值或其他方法对数组元素进行初始化

三、一维数组的使用

3.1数组下标

数组的下标就相当于数组元素的编号,是从0开始的。假设有一个长度为n的数组,它的第一个元素的下标为0,最后一个元素的下表则为n-1

举例:

int arr[10]={1,2,3,4,5,6,7,8,9,10};

在C语言中为数组的访问提供了一个操作符 [ ],这个操作符叫做:下标引用操作符。有了它,我们可以准确地访问数组中的元素。

举例:

//对于上面的arr数组,我们要访问该数组的第6个元素
printf("%d",arr[5])

 3.2 数组元素的输入输出

#include<stdio.h>
//一维数组的输入输出

int main()
{
	int arr[10];
	int i;

	//输入,通过循环遍历,对数组的每一个元素进行赋值
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}

	//输出,通过循环遍历,读取数组的每一个元素的值
	for (i = 0; i < 10; i++)
	{
		printf("%d", arr[i]);
	}

	return 0;
}

3.3 一维数组在内存中的存储

#include<stdio.h>

int main()
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};
	int i;

	//输出,通过循环遍历,读取数组的每一个元素的地址
	for (i = 0; i < 10; i++)
	{
		printf("%d\n", &arr[i]);
	}

	return 0;
}

 

结论:通过以上代码的结果我们可以看出,数组中的元素是连续存放的 

3.4 sizeof计算数组个数

#include<stdio.h>
//计算数组的长度

int main()
{
	int arr[10] = {0};
	int sz = sizeof(arr) / sizeof(arr[0]);
	//sizeof(arr)计算的是数组的大小
	//sizeof(arr[0])计算的是数组首个元素的大小
	printf("%d", sz);

	return 0;
}

 

通过这种方法,往后编写代码时,如果有需要数组元素个数的地方,就无需写死,数组的元素个数随着计算结果的变化而变化 。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值