当前位置: 首页 > news >正文

基本魔法语言数组 (一) (C语言)


🌊用有趣的言语来阐述苦涩难懂的代码世界,让每一个技术都充满风趣!
🔭个人主页:散峰而望
🚀学习方向: C/C++等方向
📌专栏系列:

  • 📖《C语言:从基础到进阶》
  • 📚《编程工具的下载和使用》
  • 🚀《C语言刷题》

💬人生格言:冀以尘雾之微,补益山海,荧烛末光,增辉岁月。

🎬博主简介
在这里插入图片描述

文章目录

  • 前言
  • 1. 数组的概念
  • 2.一维数组的创建和初始化
    • 2.1 数组的创建
    • 2.2 数组的初始化
    • 2.3 数组的类型
  • 3. 一维数组的使用
    • 3.1 数组下标
    • 3.2 数组元素的打印
    • 3.3 数组的输入
  • 4.一维数组在内存中的存储
  • 5.sizeof计算数组元素个数


前言

如果说变量是散落的魔法卷轴,那么数组就是精心打造的卷轴陈列架,让知识有序归位,让力量整齐排列。在这里,你不再是那个手忙脚乱、四处寻找单个卷轴的学徒,而是能统御成百上千魔法元素的列阵法师。管理一支魔法军团,只需要编号和阵列来组织他们,这正是数组的精髓。

准备好了吗?让我们一同打开这扇通往有序世界的大门,学习如何用数组这把钥匙,开启高效编程的魔法宝库!

1. 数组的概念

数组相当于一个魔法卷轴架 – 一个专门存放同类魔法卷轴的固定架子,即一组相同类型元素的集合

从中我们可以发现两个有价值信息:

  • 数组中存放的是1个或多个数据,但是数组元素个数不为0。
  • 数组中存放的多种数据类型是一样的。

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

2.一维数组的创建和初始化

2.1 数组的创建

一维数组相当于单排卷轴架,其创建的基本语法如下:

 type arr_name[常量值]|            |         
数组元素类型   数组名
常量值-数组元素的个数

放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的大小数组的元素类型。

  • type指定的是数组中存放数据的类型,可以是:char、short、int、float等,也可以自己定义的类型。
  • arr_name指的是数组的名字,这个名字看情况起名,有意义就行。

比如:我们想存储某个公司近20天的人员情况,我们可以创建一个数组,如下:

 int personal[20];

当然我们也可以根据需要创建其他类型和大小的数组:

char ch[6];
double score[8];

2.2 数组的初始化

有时候,数组创建的时候需要给定一些初始值,这种就被称为初始化

那数组如何初始化呢?数组的初始化一般使用大括号,将数据放在打括号里面。数组如果进行了(完全)初始化,可以不指定数组的大小,是可以省略的。因为数组的大小是根据初始化的内容来推断

完全初始化:
int arr1[5] = {1,2,3,4,5};不完全初始化:
int arr2[4] = {1};错误的初始化-初始化项多余
int arr3[3] = {1,2,3,4};

2.3 数组的类型

数组也是有类型的,数组算是一种自定义类型,去掉数组名留下的就是数组比喻的类型。

如下:

int arr1[10];
int arr[12];
char ch[5];

arr1数组的类型是int [10]
arr2 数组的类型是int [12]
ch 数组的类型是char [5]

3. 一维数组的使用

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

3.1 数组下标

C语言规定数组是有下标的,下标是从0开始。如果数组有n个元素,最后一个元素的下标是n-1,下标就相当于数组元素的编号,如下:

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

在这里插入图片描述

在C语言中数组的访问提供了一个操作符**[]**,这个操作符叫:下标引用操作符

有了下标操作符,我们就可以轻松的访问到数组的元素,我们就可以轻松的访问数组元素了。比如我们访问下标为6时的元素,我们就使用arr[6],想要访问下标为2的元素,就可以使用arr[2],代码如下:

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

在这里插入图片描述

3.2 数组元素的打印

如果想要访问整个数组的内容,那该怎么办呢?

只要我们产生所有元素下标就行,那我们就用for循环产生0∽9的下标,接下来就可以进行访问了。

代码如下:

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("%d ", arr[i]);}return 0;
}

输出结果:

在这里插入图片描述

3.3 数组的输入

当我们明白了数组的访问,我们也就要根据需求,自己给数组输入想要的数据,如下:

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

在这里插入图片描述

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

经过前面知识的保障,接下来我们使用数组基本上没有什么障碍了。如果想要深入了解数组,我们要进一步了解数组在内存中存储地址。

依次打印数组元素的地址:

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

输出结果如下:

在这里插入图片描述

从数组的输出结果分析,数组随着下标的增长,地址由小到大变化,并且发现每两个相邻的元素之间相差4(因为一个整形是4个字节)。故可以得出:数组在内存中是连续存放的

5.sizeof计算数组元素个数

如果想要知道数组的个数,有没有方法计算数组元素个数吗?

可以用魔法度量仪sizeof

sizeof是C语言中的关键字,是可以计算类型或者变量大小的,故sizeof也可以计算数组的大小。

比如:

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

在这里插入图片描述

这里输出的结果是40,计算的是数组所占内存空间的总大小,单位是字节

我们又知道数组的所有元素的类型都是相同的,那只要计算出一个元素所占字节的个数,数组的个数就能算出来。例如:

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

在这里插入图片描述

可以计算出一个元素的长度为4。

接下来就能计算出数组的元素个数:

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

在这里插入图片描述

可以看到结果是:10,表示有10个元素。

因此以后代码中需要数组元素个数的地方就不用固定写死了,使用上面的计算,无论数组怎么变化,计算出的大小也就跟着变化。

http://www.dtcms.com/a/537263.html

相关文章:

  • php源码网站修改保定建设厅网站
  • 网站建设访问对象网站开发毕设的需求分析
  • 【实战】自然语言处理--长文本分类(2)BERTSplitLSTM算法
  • Markdown模板20251027
  • Linux命令解释:cp -r --parents用法
  • 关于企业的网站天津做网站找谁
  • 0138. 随机链表的复制
  • 长春网站建设公司seo是什么意思教程
  • 【vllm】源码解读:vLLM 中 Data Parallelism DP=8 核心原理详解
  • 对信号的理解
  • 【系统分析师】高分论文:论软件的安全性设计(某校通系统)
  • 硬盘专业名词:总线、协议、接口详细解析
  • Agent Skills应用解析:构建可扩展、高效率AI探员
  • 【车载测试常见问题】CAN一致性测试包含哪些内容?
  • 成都网站开发制作上海进博会
  • 云手机和虚拟机的区别都有哪些?
  • php wap网站实现滑动式数据分页大公司网站开发
  • WebSocket 详解
  • SPR 实验笔记:从原理到实操,解锁天然产物筛选、靶点验证与膜蛋白互作的“金标准”技术
  • 发布会回顾|袋鼠云发布多模态数据中台,重构AI时代的数据底座
  • AOI在PCB制造领域的核心应用
  • 网站建设系统规划seo信息优化
  • 建筑公司网站设计思路静态网站怎么样
  • python在Linux服务器中安装
  • 排序算法解析
  • 餐饮 网站建设互联斗士网站建站
  • 民营医院网站建设视频网站点击链接怎么做
  • Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用
  • 微信小程序-智慧社区项目开发完整技术文档(上)
  • 2025年10月主流工程项目管理软件推荐