C语言数组:从入门到进阶
前言:
在这篇博客中,我们将学习如何使用C语言数组的基本知识。数组是C语言中的一种重要数据结构,它允许我们存储一系列相同类型的数据。我们将讨论数组的定义、初始化、访问元素、遍历数组以及数组的应用场景。此外,我们还将通过一些代码示例来加深对数组的理解。
目录
一、数组的定义和声明
二、数组的初始化
1. 初始化所有元素:
2. 部分初始化元素:
3. 使用默认值初始化:
4. 动态初始化(在运行时初始化):
三、数组的访问
四、数组的遍历
五、多维数组
六、数组的应用场景
七、总结
一、数组的定义和声明
在C语言中,数组的定义和声明是分开的。定义数组时,我们需要指定数组的类型和大小。声明数组时,我们只需要指定数组的类型和名称。以下是数组的定义和声明的语法:
数据类型 数组名[数组大小];
例如,我们可以定义一个包含5个整数的数组:
int numbers[5];
二、数组的初始化
在定义数组后,我们可以为数组的元素赋初值。C语言提供了多种初始化数组的方式。以下是一些示例:
1. 初始化所有元素:
int numbers[5] = {1, 2, 3, 4, 5};
2. 部分初始化元素:
int numbers[5] = {1, 0, 3};
3. 使用默认值初始化:
int numbers[5] = {0}; // 所有元素都初始化为0
4. 动态初始化(在运行时初始化):
int size = 5;
int numbers[size];
for (int i = 0; i < size; i++) {numbers[i] = i + 1;
}
三、数组的访问
要访问数组的元素,我们需要使用索引。数组的索引从0开始,因此数组的第一个元素对应索引0,第二个元素对应索引1,以此类推。访问数组元素的语法如下:
数组名[索引];
例如,访问上面定义的数组的第一个和第二个元素:
printf("numbers[0] = %d\n", numbers[0]); // 输出:numbers[0] = 1
printf("numbers[1] = %d\n", numbers[1]); // 输出:numbers[1] = 2
四、数组的遍历
为了遍历数组中的所有元素,我们可以使用循环结构,如for循环。以下是一个遍历数组的示例:
int numbers[5] = {1, 2, 3, 4, 5};for (int i = 0; i < 5; i++) {printf("numbers[%d] = %d\n", i, numbers[i]);
}
输出:
numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5
五、多维数组
除了一维数组,C语言还支持多维数组。多维数组是数组的数组,可以用于表示矩阵等复杂的数据结构。以下是一个二维数组的示例:
int matrix[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}
};
要访问多维数组中的元素,我们需要使用多个索引:
printf("matrix[1][2] = %d\n", matrix[1][2]); // 输出:matrix[1][2] = 6
六、数组的应用场景
数组在C语言中有许多应用场景,例如:
存储和处理一组数据:数组可以用于存储和处理一组相同类型的数据,如学生成绩、温度数据等。
字符串处理:C语言中的字符串实际上是以字符数组的形式存储的。
矩阵运算:多维数组可以用于表示和处理矩阵,进行矩阵运算。
数据结构的实现:数组是许多数据结构(如堆栈、队列、哈希表等)的基础。
七、总结
在本篇博客中,我们详细介绍了C语言中数组的基础知识。我们学习了数组的定义、初始化、访问和遍历,还了解了多维数组和数组的应用场景。通过使用数组,我们可以更方便地存储和处理一组相同类型的数据。
数组的内容还有许多,单凭这一篇文章并不能全部概述,如果想要学习更多关于数组的知识,点进我主页搜素,麻烦给个三连,谢谢各位。
新年快乐!!!(拜个早年)
相关文章:
C语言数组:从入门到进阶
前言: 在这篇博客中,我们将学习如何使用C语言数组的基本知识。数组是C语言中的一种重要数据结构,它允许我们存储一系列相同类型的数据。我们将讨论数组的定义、初始化、访问元素、遍历数组以及数组的应用场景。此外,我们还将通过…...
9.回文数
回文数 将整型转换为字符型反转前一半是否等于后一半将数字本身反转输入一个整数 x,如果 x是一个回文整数,返回 true;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。 将整型转换为字符型 反转…...
一分钟在SpringBoot项目中使用EMQ
先展示最终的结果: 生产者端: RestController RequiredArgsConstructor public class TestController {private final MqttProducer mqttProducer;GetMapping("/test")public String test() {User build User.builder().age(100).sex(1).address("世界潍坊渤…...
SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧
SOME/IP 不应仅用于传输 CAN 或 FlexRay 帧。但是,消息 ID 空间需要在两种用例之间进行协调。 传输 CAN/FlexRay 应使用完整的 SOME/IP 标头。 AUTOSAR Socket-Adapter 使用消息 ID 和长度来构建所需的内部 PDU,但不会查看其他字段。因此,必…...
与数组相关经典面试题
𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…...
数据结构与算法面试系列-02
1. 一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上168后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 程序代码如下: package com.yoodb.uti…...
CMake 完整入门教程(五)
CMake 使用实例 13.1 例子一 一个经典的 C 程序,如何用 cmake 来进行构建程序呢? //main.c #include <stdio.h> int main() { printf("Hello World!/n"); return 0; } 编写一个 CMakeList.txt 文件 ( 可看做 cmake 的…...
pgsql中with子句和直接查询差别
1、代码的可读性和维护性: 当查询较为复杂时,WITH子句可以将复杂的查询分解成多个简单的步骤,每个步骤都可以有一个易于理解的名字。这样做提高了代码的可读性,也便于后期维护。 2、代码的重用性: 在WITH子句中定义…...
Day 31 | 贪心算法 理论基础 、455.分发饼干 、 376. 摆动序列 、 53. 最大子序和
理论基础 文章讲解 455.分发饼干 题目 文章讲解 视频讲解 思路:从小饼干开始喂小胃口 class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int start 0;int count 0;for (int i 0; i < s.length &&a…...
vue3使用is动态切换组件报错Vue received a Component which was made a reactive object.
vue3使用is动态切换组件,activeComponent用ref定义报错 Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with markRaw or using shallowRef ins…...
React16源码: React中LegacyContext的源码实现
LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了,就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢?因为它…...
Gin 框架之jwt 介绍与基本使用
文章目录 一.JWT 介绍二.JWT认证与session认证的区别2.1 基于session认证流程图2.2 基于jwt认证流程图 三. JWT 的构成3.1 header : 头部3.2 payload : 负载3.2.1 标准中注册的声明 (建议但不强制使用)3.2.2 公共的声明3.2.3 私有的声明3.2.4 定义一个payload 3.3 signatrue : …...
从[redis:LinkedList]中学习链表
文章目录 adlistlistNodelistmacros[宏定义]listCreatelistInitNodelistEmptylistReleaselistAddNodeHeadlistLinkNodeHeadlistAddNodeTaillistLinkNodeTaillistInsertNodelistDelNodelistUlinkNodelistIndexredis3.2.100quicklistredis7.2.2quicklist redis的基本数据类型之一…...
Prometheus+grafana配置监控系统
使用docker compose安装 方便拓展, 配置信息都放在在 /docker/prometheus 目录下 1.目录结构如下 . ├── conf │ └── prometheus.yml ├── grafana_data ├── prometheus_data └── prometheus_grafana.yaml2.创建目录文件 mkdir /docker/prometheus &&am…...
Linux之安装配置CentOS 7
一、CentOS简介 CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,…...
神经网络与深度学习Pytorch版 Softmax回归 笔记
Softmax回归 目录 Softmax回归 1. 独热编码 2. Softmax回归的网络架构是一个单层的全连接神经网络。 3. Softmax回归模型概述及其在多分类问题中的应用 4. Softmax运算在多分类问题中的应用及其数学原理 5. 小批量样本分类的矢量计算表达式 6. 交叉熵损失函数 7. 模型预…...
git学习及简单maven打包
前提: 已经有远程仓库地址 和账号密码了 已经安装git了 1.本地新建文件夹A用作本地仓库 2.在A文件夹下右键打开GIT BASH HERE 3.创建用户和密码,方便追踪提交记录 git config --global user.email “caoqingqing0108” //创建邮箱 git config --global …...
如何用MapTalks IDE来发布网站?
简介 MapTalks IDE 全称 MapTalks集成设计环境(Integrated Design Environment),是由MapTalks技术团队开发的新一代web地图设计软件。 通过MapTalks IDE,您可以自由的创建二维和三维地图,在其中载入或创建地理数据&a…...
我用selenium开发了一个自动创建任务,解放重复性工作
我用selenium开发了一个自动创建任务,大大解放了我做重复性工作带来的疲惫感,收获了更多的乐趣。 我司有100多个服务,运维忙不过来的时候,就会让我们自己创建云负载,你首先需要在云服务上创建负载,再创建容…...
安卓11修改HDMI自适应分辨率
客户需要hdmi自适应屏幕分辨率,没发现有相关的指令,我发现设置中有个hdmi的Auto选项,于是就试试选中这个选项,试下了可以自适应,于是就找到相关代码,在开机完成后执行这个代码,基本满足需求&…...
MoE混合专家系统原理与工程实践:稀疏激活如何实现大模型高效推理
1. 项目概述:当“参数规模”不再等于“实际计算量”你可能已经看过不少标题党文章,比如“GPT-4参数量突破1.8万亿!”——但真正值得细品的,是后半句:“它每处理一个词(token),只动用…...
深度学习的五大硬边界:数据饥渴、因果失语、鲁棒性脆性、可解释性黑洞与泛化围栏
1. 这不是“AI不行了”,而是你该看清深度学习真正能做什么、不能做什么“Limitations of Deep Learning”这个标题,乍一看像篇学术综述的冷门小节,但在我过去十年带团队落地近百个AI项目的过程中,它其实是每个工程师、产品经理甚至…...
2026年数据驱动经济与信息管理国际学术会议(DDEMI 2026)
2026年数据驱动经济与信息管理国际学术会议(DDEMI 2026)会议时间:2026年8月07日-09日会议地点:江苏-南京截稿日期:2026年7月31日录用结果:投稿后1周内收录检索:EI Compendex, Scopus【大会简介】…...
Unity ShaderGraph环境搭建避坑指南:URP/HDRP渲染管线匹配
1. 为什么“环境搭建”是ShaderGraph学习路上第一个真坑 很多人点开Unity ShaderGraph教程,第一眼看到“创建Sub Graph”“连接Base Color节点”,心里一热:这不就是拖拖拽帖?比写HLSL简单多了!结果双击打开Shader Gra…...
别再只会用默认库了!用OrCAD Capture CIS高效创建Homogeneous与Heterogeneous复合器件
高效设计复杂芯片:OrCAD Capture CIS中Homogeneous与Heterogeneous器件的进阶实践 在电子设计领域,面对日益复杂的芯片架构,工程师们常常陷入一个两难境地:当芯片包含多个功能单元时,是应该逐个绘制每个部分ÿ…...
三年级下册语文第四单元作文:中华传统节日
三年级下册语文《中华传统节日》作文,一般会写:春节元宵节端午节中秋节重点不是介绍很多知识,而是: ✅ 节日习俗 ✅ 自己的经历 ✅ 节日气氛 ✅ 感受我用夸克网盘分享了「三年级下册语文作文1-8单元」,链接:…...
Python运算符:逻辑运算符(and/or/not)的短路特性
Python运算符:逻辑运算符(and/or/not)的短路特性📚 本章学习目标:深入理解逻辑运算符(and/or/not)的短路特性的核心概念与实践方法,掌握关键技术要点,了解实际应用场景与…...
GEO生成引擎优化:当品牌竞争从搜索结果页迁移到大模型对话窗口
当生成式AI成为信息的首要分发渠道,你的品牌还只盯着SEO吗?一、用户获取信息的路径,已经变了过去十几年,我们习惯了"搜索关键词 → 浏览结果页 → 点击进入网站"这条线性路径。SEO(搜索引擎优化)…...
Anthropic率先盈利:大模型商业化曙光初现,IPO竞争谁能笑到最后?
1. 前沿模型盈利曙光乍现前沿模型公司的利润表终于出现了正数。据《华尔街日报》报道,Anthropic正迎来关键季度,预计2026年第二季度收入超109亿美元,较第一季度的48亿美元增长超一倍,且首次实现季度营业利润。路透社称其二季度预计…...
中性点不接地系统或中性点经消弧线圈接地系统的小电流接地故障仿真研究(Simulink仿真实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 🎁…...
