C语言中的百宝箱——数组(1)

欢迎来到白刘的领域   Miracle_86.-优快云博客

系列专栏  C语言知识

先赞后看,已成习惯

   创作不易,多多支持!

目录

一、数组的含义

二、一维数组

1.一维数组的创建及初始化

2.数组的类型

3.一维数组的使用

5.数组的打印

6.数组在内存中的存储

三、sizeof


一、数组的含义

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

数组是一种数据结构,可以存储多个相同类型的元素。数组中的元素称为数组的元素,它们在内存中是连续存储的,并可以通过索引访问。索引是指向数组元素的位置,通常从0开始计数。

数组可以用来表示一组数据,例如一组学生的成绩、一组员工的工资等。通过使用数组,可以方便地对这组数据进行操作,如访问特定位置的元素、插入或删除元素、排序等。

数组的大小是固定的,一旦声明后,就不能改变。如果需要存储更多的元素,就需要重新声明一个更大的数组,并将原有数组中的元素拷贝到新数组中。

数组可以是一维的,也可以是多维的。一维数组类似于列表或向量,多维数组则类似于表格或矩阵。多维数组可以通过多个索引来定位元素的位置。

在计算机科学中,数组是一种基本的数据结构,被广泛应用于算法和程序设计中。通过数组,可以高效地存储和访问数据,提高程序的性能和效率。

今天我们先来学习一维数组。

二、一维数组

1.一维数组的创建及初始化

我们知道创建一个变量需要初始化,而创建一个数组也需要初始化,如何创建数组呢?

type arr_name[常量]

我们看到上面这一条,包括了type—数组的类型,arr_name—数组名,以及中括号和里面的常数值。之所以说数组是一个百宝箱,是因为它可以存储数据,比如说我想存放一个班30个人的数学成绩,那我可以这样:

int math[30]

那又如何创建数组呢?我们可以像这样:

int arr[5] = {0};

一般使用大括号将元素存入数组。

2.数组的类型

这个有朋友会问了,按照上面这个图来说 type arr_name[ ]的type不就是类型吗。其实不是这样的,数组的类型属于一种自定义类型,比如int math[50],它的类型就不是int,而是int [50];

3.一维数组的使用

上面我们学到了数组的建立以及初始化,那具体怎么使用,怎么存储的呢?

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

 这里引入了数组下标,下标是从0开始的,最后一个元素的下标是n-1,下标就相当于元素的编号。而我们的中括号叫下标引用操作符,有了它我们可以快速找到我们所存的数据。

5.数组的打印

由于数组存储了多个数据,所以仅靠一个printf是不可以打印全部的,所以我们用到了循环。

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

输出的结果:

学会了输出,输入也是同理。

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

6.数组在内存中的存储

刚讲完输入输出,我们就可以用数字了,但是想真正了解数组,就要看清它的本质,接下来,我们看看数组内存的存储,这里我们依次打印每个元素的地址:

#include <stdio.h>
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,这是因为类型为int,是四个字节,如果换成char,就会相差1。

三、sizeof

在C语言中,我们可以使用sizeof来计算数组元素个数

sizeof是一个关键字,它可以计算类型或变量的大小,所以它也可以用来计算数组的大小,例如:

#include<stdio.h>
int main()
{
	int arr[10] = { 0 };
	printf("%d", sizeof(arr));
	return 0;
}

就可以计算出数组大小,为40(字节)。由于数组中的每个元素都是相同的,所以我们算出一个元素所占的字节,就能算出一共有多少元素。

计算一个元素:

#include <stdio.h>
int main()
{
 int arr[10] = {0};
 printf("%d\n", sizeof(arr[0]));//计算⼀个元素的⼤⼩,单位是字节
 return 0;
}

计算数组元素个数:

#include <stdio.h>
int main()
{
 int arr[10] = {0};
 int sz = sizeof(arr)/sizeof(arr[0]);
 printf("%d\n", sz);
 return 0;
}

计算结果为:10,表示数组有10个元素。

因此在以后,需要写数组个数的时候,就不用固定写死了,要学会变通。

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Miracle_86.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值