从最浅层剖析C语言——第四节(超详细讲解一维数组内容)

2024-08-25 09:12

本文主要是介绍从最浅层剖析C语言——第四节(超详细讲解一维数组内容),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 数组的概念

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

2.1 数组的创建

2.2 数组的初始化

考点总结:当我们未对数组进行初始化时,数组里面的元素打印出来是乱码,但哪怕只对数组里面一个元素赋值,之后未被赋值的元素也会默认赋值为0

3. 一维数组的使用

3.1 下标引用操作符

3.2 数组的输入

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


1. 数组的概念

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

注意;数组中可以存放一个或者多个数据,但是不能让数组里面的元素个数为0

数组中存放的每一个数据,它们的类型是相同的

数组分为一维数组和多维数组,多维数组中常见的一般为二维数组

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

2.1 数组的创建

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

type(类型) arr_name[常量值]

其中type就是对数组中所存放的数据类型做出一个定义,这个类型可以是char、int、short int、double等等类型的数据

arr_name值得就是数组的名字,这个名字可以由程序员自己根据实际情况而起名

常量值就是用来指定数组的大小的,这个数组的大小是根据实际的需求指定的

比如现在我想要创建一个数组来存放我们学校1000个人的年龄大小

就如上图这样,这个数组就创建成功了

数组里面元素的类型和数组的名字,都是我们根据情况所设定的

比如数组就还可以用来存放名字,体重

2.2 数组的初始化

在我们之前学习变量的时候,我们就知道我们一开始需要给变量赋值,这被称为变量的初始化,同理,我们根据我们的需要创建了数组后,那我们自然也同样需要对数组进行一个初始化

那么数组应该如何进行初始化呢???

数组的初始化一般使用大括号进行,只需要将数据放入大括号里面即可

这样便将age数组里面的五个元素分别初始化为5,4,3,2,1

那肯定有人想问了,如果我们不初始化数组的话,数组里面的元素默认会是几呢?

大家可以看到,如果不初始化数组,那么打印数组内部的各个元素出来的将会是一些乱码

那又有一个问题了,将数组每一个元素都需要一个一个的初始化实在是太麻烦了,如果我们只初始化几个,那剩下的未被初始化的数组元素打印出来还会是乱码吗?

可以看得到,在我们只对数组一个元素命名为0时,其他元素最后也默认为0

而我们对数组一个元素命名为其他数字的时候,其他未被命名的数组元素也同样默认为0

考点总结:当我们未对数组进行初始化时,数组里面的元素打印出来是乱码,但哪怕只对数组里面一个元素赋值,之后未被赋值的元素也会默认赋值为0

所以我们经常对数组初始化采用只对数组里面第一个元素赋值为0,来进行数组的初始化

2.3 数组的类型

数组本身也是有类型的,但数组的类型和我们之前学习到的变量的类型是有很大区别的,比如上面所写的

int  age  [5]

char name[5]

这些数组的类型实际上就是去除数组名之后剩下的东西

比如第一个数组的数组类型就是:int  [5]

下一个就是:char [5]

3. 一维数组的使用

3.1 下标引用操作符

我们可以用一维数组来存放我们的数据,那么我们存放之后如何提取呢???

这就要提到一个操作符:下标引用操作符[ ]

C语言本身规定数组是有下标的,下标从0开始,如果数组有n个元素,那么最后一个元素的下标就是n-1,下标本身就相当于数组里面每一个元素的代号

当我们需要具体提取哪一个数组元素的时候,使用下标引用操作符就会变得十分简单

现在我们来实践一下,使用下标引用操作符精确找到我们在数组中所存储的信息

通过下标引用操作符,我们就精确打印出了下标为三的数组元素,这其实也侧面反映了,在我们对于数组进行初始化的时候,是按照从左到右的顺序依次给下标为0,下标为1等等的数组元素进行赋值

3.2 数组的输入

在明白了下标引用操作符的工作原理之后,我们就可以继续让我们自己输入数据到数组里面存储起来了

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

前面的知识就是对一维数组的使用,但为了让大家更加深入了解一维数组,我们要先深入了解一下数组在内存之中的存储

我们先来依次打印出数组元素的地址看看

如上图所示,我们仔细观察一下这些数组元素的地址我们就可以发现,下一个元素的地址比上一个元素的地址要多上4

这里额外补充一点,在十六进制中,10用a表示,11用b表示,12用c表示,以此类推

所以上面的C实际上就是12的意思

总结:数组中的元素随着下标的增长,地址是由小到大逐渐变化的,而每两个元素之间相差四,正是因为一个整型类型所占的空间是四个字节

所以我们可以知道数组在内存中是连续存放的

这篇关于从最浅层剖析C语言——第四节(超详细讲解一维数组内容)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105140

相关文章

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

Java数组初始化的五种方式

《Java数组初始化的五种方式》数组是Java中最基础且常用的数据结构之一,其初始化方式多样且各具特点,本文详细讲解Java数组初始化的五种方式,分析其适用场景、优劣势对比及注意事项,帮助避免常见陷阱... 目录1. 静态初始化:简洁但固定代码示例核心特点适用场景注意事项2. 动态初始化:灵活但需手动管理代

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1