news 2026/5/2 17:53:54

数组(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数组(二)

一、二维数组的创建

1、二维数组的定义

type arr_name[常量值 1][常量值 2];

2、二维数组的创建

例如:

int arr[3][5];

double score[2][10];

解释:

3表示数组有3行,

5表示每一行有5个元素,

int表示数组的每个元素是整型类型,

arr是数组名,可以根据自己的需要指定名字。

二、二维数组的初始化

在创建变量或者数组的时候给定一些初始值,被称为初始化。二维数组如何初始化?就像一维数组一样,我们也是使用大括号进行初始化的。

2.1.不完全初始化

例如:

int arr1[3][5] = {0};

int arr2[3][5] = {1,2};

2.2.完全初始化

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

2.3.按照行初始化

int arr4[3][5] = {{1,2},{3,4},{5,6}};

2.4.初始化时可以省略行,但不能省略列

三、二维数组的使用

3.1.二维数组的下标

二维数组的访问也是使用下标的方式,二维数组也是有行和列的,只要锁定了行和列就能唯一锁定数组中的一个元素。

C语言规定,二维数组的行和列都是从0开始的。

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

其中,最左侧的数字代表行号,第一行数字代表列号,都是从0开始的。例如,第二行、第三列就能快速锁定6。

代码如下:

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

可自行验证。

3.2.二维数组的输入和输出

访问二维数组的单个元素我们知道了,那么,我们如何访问整个数组呢?

答案是我们只需要按照一定的规律产生所有的行和列的数字就行。

代码如下(可自行验证):

#include<stdio.h>
int main() {
int arr3[3][5] = { 1,2,3,4,5,6,7,8,9,2,3,4,5,6,7 };
int i = 0;//产生行
//输入
for (i = 0; i < 3; i++) {
int j = 0;//产生列
for (j = 0; j < 5; j++) {
scanf("%d", &arr3[i][j]);
}
}
//产生行
//输出
for (i = 0; i < 3; i++) {
int j = 0;//产生列
for (j = 0; j < 5; j++) {
printf("%d ", arr3[i][j]);
}
printf("\n");
}
return 0;
}

感谢你阅读这篇关于C语言二维数组的入门指南!希望这篇文章能帮你打牢基础、理清概念。编程之路,贵在实践与交流——如果你有任何疑问、建议,或者想分享你的学习心得,欢迎在评论区留言!也别忘了关注我的博客,我会持续更新更多通俗易懂、干货满满的编程教程。让我们一起在代码的世界里不断进步,共同成长!🌟

下一期预告:《数组(三)》即将上线,深入更多实用技巧与经典案例!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 11:31:23

数据变化(原始数据—数据清洗—特征工程)

数据清洗步骤 用户行为数据缺失值处理 user_id、item_id是关联用户和商品的唯一标识&#xff0c;缺失后无法建立有效关联behavior_type是核心行为标签&#xff0c;缺失无法定义交互类型timestamp是时间序列分析的基础&#xff0c;缺失影响序列特征的准确性直接删除比填充更可靠…

作者头像 李华
网站建设 2026/5/2 8:00:19

Go进阶之反射

Go语言是静态类型语言.比如int float32 []byte32等等.每个变量都有一个静态类型.并且在编译的时候就已经确定了.type Myint int var i int var j Myint变量i和j不是相同类型.因为二者拥有不同的静态类型.尽管二者底层的类型都是int.但在没有类型转换的情况下是不可以相互赋值的…

作者头像 李华
网站建设 2026/5/2 0:50:49

智能声光感应窗帘系统设计

目录智能声光感应窗帘系统概述核心功能模块技术实现要点应用场景与优势扩展功能源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;智能声光感应窗帘系统概述 智能声光感应窗帘系统结合声音识别与光照传感器技术&#xff0c;通过自动化控制…

作者头像 李华
网站建设 2026/4/25 2:00:13

宝塔面板一键部署 Emlog 教程:从服务器准备到站点上线全攻略

文章目录宝塔面板一键部署 Emlog 教程&#xff1a;从服务器准备到站点上线全攻略一、宝塔面板简介二、部署前准备三、宝塔面板安装1. 下载并执行安装脚本2. 访问宝塔面板四、宝塔面板一键部署 Emlog1. 搜索并选择 Emlog2. 填写部署信息3. 部署完成与访问4. 设置管理员账号五、部…

作者头像 李华
网站建设 2026/4/23 8:30:48

微积分:世界是用“微分”写成的,我们是用“积分”读懂的

——试着不用符号理解微积分 &#x1f343; 01. 世界是连续变化的 温度不是“突然 5℃”&#xff0c;而是慢慢升的 汽车不是“瞬间到 60 km/h”&#xff0c;而是一点点加速 树不是“咻”一下长高&#xff0c;而是毫米级地生长 河水不是“啪”地冲过去&#xff0c;而是持续…

作者头像 李华
网站建设 2026/4/23 9:53:43

警惕 Shell 脚本中的逻辑陷阱:|| 替代 if-else 引发的安全漏洞

在 Shell 脚本编写中&#xff0c;开发者为了追求简洁&#xff0c;常使用 && 与 || 的短路组合逻辑替代结构化的 if-else 语句。这种看似便捷的写法&#xff0c;实则隐藏着极易被忽视的逻辑陷阱。本文将深入剖析这两种逻辑的核心差异&#xff0c;通过实战案例揭示漏洞成…

作者头像 李华