news 2026/8/24 9:30:32

小白学C语言(知识版)丨DAY 5

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白学C语言(知识版)丨DAY 5

一维数组

1.一维数组概念

数组:是相同类型元素的一个集合。在内存中是一段连续的空间。

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

一维数组创建基本语法:type arr_name[常量值];
省略数组的长度,程序会根据数组元素个数推导出输出长度

3.一维数组使用

3.1数组下标

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

3.2通过数组下标访问元素

访问元素的方式为:数组名[下标]
3.2.1访问单独数据
#include<stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
printf("%d\n",arr[2]);//输出3
printf("%d\n",arr[7]);//输出8
return 0;
}
3.2.2访问数组当中的所有数据
#include<stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
3.2.3给数组输入元素
#include<stdio.h>
int main()
{
int arr[5];
int i = 0;
for (i = 0; i < 5; i++)
{
scanf("%d", &arr[i]);
}
for (i = 0; i < 5; i++)
{
printf("%d ", arr[i]);
}
return 0;
}

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

我们知道数组的定义是相同类型元素的一个集合。在内存中是一段连续的空间。
意味着每个元素与每个元素之间内存是连续的。
#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++)
{
//这里打印地址的时候采用的是十进制,方便同学们可以看懂。事实上使用%p也是可以的
printf("&arr[%d] = %d\n", i, &arr[i]);
}
return 0;
}

5. sizeof与数组

我们可以通过sizeof(数组名)来计算整个数组的字节大小。
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d\n", sizeof(arr));
return 0;
}
计算整个数组的长度:
sizeof(arr)/sizeof(arr[0]

二维数组

1.二维数组的概念

二维数组是相同数据类型元素按行和列排列的矩形集合,可以把二维数组写成行和列的排列形式来理解二维数组的逻辑结构。
站在一维数组的基础上理解二维数组,可以理解为:二维数组是把一维数组作为数组的元素。

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

type arr_name[常量值1][常量值2]
二维数组定义的时候可以省略行,不能省略列。(程序会根据列自动推导出行)

3.二维数组的使用

3.1二维数组下标
二维数组的访问也是通过[]的方式进行访问,如上图所示如果要确定数据3的位置,我们可以通过行和列确定。行 为0,列为2.C语言中确定方式为:数组名[][]的方式。

3.2通过数组下标访问元素

给数组输入元素
#include<stdio.h>
int main()
{
int arr[2][3];
int row = 2;
int col = 3;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
scanf("%d", &arr[i][j]);
}
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 1:40:35

半导体设备报警诊断程序技术方案

半导体设备报警诊断程序技术方案引言在半导体制造行业&#xff0c;设备报警诊断程序是确保工艺过程稳定运行的关键系统。本方案基于WPF&#xff08;Windows Presentation Foundation&#xff09;开发一个高效、灵活的报警诊断程序&#xff0c;涵盖工艺故障、报警事件、程序运行…

作者头像 李华
网站建设 2026/8/23 11:28:49

LobeChat结合Prompt工程提升大模型输出质量的方法论

LobeChat 结合 Prompt 工程&#xff1a;打造高质量大模型输出的系统化实践 在今天&#xff0c;与大语言模型&#xff08;LLM&#xff09;对话早已不是“问一句、得一答”的简单交互。无论是企业客服、技术文档生成&#xff0c;还是个性化知识助手&#xff0c;用户对 AI 输出的要…

作者头像 李华
网站建设 2026/8/22 1:57:41

Laravel + Vue3 前后端分离开源后台管理框架 CatchAdmin v5.0 Beta 发布

Laravel Vue3 前后端分离开源后台管理框架 CatchAdmin v5.0 Beta 发布 介绍 CatchAdmin 是一款基于 Laravel12 与 Vue3&#xff08;Element Plus&#xff09;的前后端分离开源后台管理系统框架。Laravel 社区也有许多非常优秀的后台管理系统&#xff0c;例如 Nova&#xff0…

作者头像 李华
网站建设 2026/8/23 12:13:18

构建可靠的AIGC创作系统:从单点实验到可重复生产

引言&#xff1a;AIGC创作的系统化转型在过去一年中&#xff0c;我亲身经历了从AIGC工具探索者到系统性创作者的转型。本文将分享我构建可重复、高质量创作系统的实践经验&#xff0c;涵盖技术架构设计、质量保障机制和效率优化策略。所有经验均基于实际项目验证&#xff0c;旨…

作者头像 李华
网站建设 2026/8/22 16:28:28

自动驾驶—CARLA仿真(11)bounding_boxes demo

&#x1f4cc; 测试用例 PythonAPI/examples/bounding_boxes.py 这是一个 2D/3D 边界框&#xff08;Bounding Box&#xff09;生成与可视化系统&#xff0c;用于&#xff1a; 在仿真中生成大量 NPC 车辆通过 RGB 摄像头 实例分割摄像头 获取场景数据实时计算并绘制 2D/3D 边…

作者头像 李华
网站建设 2026/8/24 2:37:17

2026资产革命预言:NATS与WEEX正在构建的“数字文明新大陆“

引言&#xff1a;当故宫文物遇见区块链——RWA重构全球资产版图2025年10月30日&#xff0c;一场名为《NATS上市&#xff1a;全球首枚中国主权RWA的东方文艺复兴》的Twitter Space讨论引发跨时区热议。这场由WEEX交易所与NATS项目联合发起的对话&#xff0c;吸引了来自新加坡、迪…

作者头像 李华