C语言学习day16:二维数组

news2025/3/10 10:42:51

二维数组格式:

数据类型 数组名[行][列] =
{
    {值1,值2},
    {值3,值4}
}

代码:

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

那么我们怎么找它的下标呢,我先上一副图:

假如我现在要找1,那么它的下标就会是arr[0][0];

我们知道一维数组的求个数是:

由整个数组的大小/第一个数组元素的大小

sizeof(arr)/sizeof(arr[0])

那么我们二维数组的个数以及值要怎么求呢:

代码:

	printf("二维数组大小=%d\n",sizeof(arr));//行*列*数据类型大小
	printf("二维数组一行大小:%d\n",sizeof(arr[0]));
	printf("二维数组元素大小:%d\n",sizeof(arr[0][0]));

	printf("二维数组行数:%d\n", sizeof(arr)/sizeof(arr[0]));
	printf("二维数组列数:%d\n",sizeof(arr[0]) / sizeof(arr[0][0]));

解释一下

  • sizeof(arr)=整个二维数组的大小
  • sizeof(arr[0])=二维数组第一行(下标0)的大小
  • sizeof(arr[0][0])=二维数组单个元素的大小

接下来我们计算:

  • sizeof(arr)/sizeof(arr[0])=整个二维数组的大小/二维数组第一行(下标0)的大小=行数    举个例子:总值=大小*单数
  • sizeof(arr[0])/sizeof(arr[0][0])=第一行(下标0)的大小/单个元素的大小=单行的数量

我们来给数组赋值:

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

输出:

接下来我们看看二维数组地址的变化:

代码:

int main()
{
	int arr[2][3] =
	{
		{1,2,3},
		{4,5,6}
	};
	//二维数组首地址
	printf("%p\n", arr);
	printf("%p\n", arr[0]);
	printf("%p\n",&arr[0][0]);

	system("pause");
	return EXIT_SUCCESS;
}

 输出:

没错。我们发现arr=arr[0]=arr[0][0] 

说明取的依然是首地址

我们现在改一下下标

代码:

	printf("%p\n", arr);
	printf("%p\n", arr[1]);
	printf("%p\n",&arr[1][1]);

输出:

 没错,它们还是连续性的,并且每个元素相隔的规律和一维数组一样

接下来我们遍历一下二维数组的地址

代码:

	int arr[2][3] =
	{
		{1,2,3},
		{4,5,6}
	};
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%p\n",&arr[i][j]);
		};

输出:

这证明了我们的结论是完全正确的

同时二维数组还有三种写法

代码:

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

 输出:

都是可以的 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1454133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

惠普打印机驱动安装

一、下载驱动 支持 --> 软件与驱动程序 https://www.hp.com/cn-zh/home.html 选择打印机 输入打印机型号&#xff0c;下拉框选择自己的打印机型号 打印机型号正常在打印机的正面会有 往下滑选择安装软件和全功能/基本功能驱动程序-仅支持打印和扫描功能 (1) 点击下载…

idea将springboot打包成jar包

打开idea->view->Tool Windows->Terminal 在控制台输入&#xff1a; mvn clean package

Matlab论文插图绘制模板第136期—极坐标气泡图

在之前的文章中&#xff0c;分享了Matlab笛卡尔坐标系的气泡图的绘制模板&#xff1a; 进一步&#xff0c;再来分享一下极坐标气泡图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需要的朋…

【全网首篇】Copyparty 路径遍历漏洞 CVE-2023-37474 漏洞分析

Copyparty是一个便携式文件服务器 Copyparty 路径遍历漏洞 CVE-2023-37474 漏洞分析&#xff0c;这个漏洞研究了一些时间&#xff0c;不过这个不难 漏洞复现分析环境 Copyparty测试版本&#xff1a;1.8.0和1.8.2 系统&#xff1a;Windows10 和 Linux 运行环境&#xff1a;…

helm部署gitlab-runner问题解决

关于.gitlab-ci.yml中build镜像时&#xff0c;docker守护进程未启动错误 问题截图 解决方法 conf.toml添加 [[runners.kubernetes.volumes.host_path]]name "docker"mount_path "/var/run/docker.sock"read_only falsehost_path "/var/run/dock…

PyCharm - Run Debug 程序安全执行步骤

PyCharm - Run & Debug 程序安全执行步骤 1. Run2. DebugReferences 1. Run right click -> Run ‘simulation_data_gene…’ or Ctrl Shift F10 2. Debug right click -> Debug ‘simulation_data_gene…’ 在一个 PyCharm 工程下&#xff0c;存在多个 Pytho…

Spin Image自旋图像描述符可视化以及ICP配准

一、Spin Image自旋图像描述符可视化 C #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/search/kdtree.h> #include <pcl/io/pcd_io.h> #include <pcl/features/normal_3d_omp.h>//使用OMP需要添加的头文件 #inclu…

【机器学习笔记】12 聚类

无监督学习概述 监督学习 在一个典型的监督学习中&#xff0c;训练集有标签&#x1d466; &#xff0c;我们的目标是找到能够区分正样本和负样本的决策边界&#xff0c;需要据此拟合一个假设函数。无监督学习 与此不同的是&#xff0c;在无监督学习中&#xff0c;我们的数据没…

Json格式文件

1.把Java对象转换成Json格式 1.1.导入依赖 这里推荐一个插件Jackson&#xff0c;其提供的类可以让Java的类转换成Jason格式文件 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><vers…

记录一次安卓手机使用wm命令错误参数,导致的屏幕大小错误以及挽救

使用安卓终端管理器运行wm命令调整屏幕大小 wm size wxh原本分辨率1024x2048&#xff0c;失手调成了800x600&#xff0c;手机屏幕一下子变成800x600 wm size 800x600wm命令重启后依旧会保持分辨率&#xff0c;所以重启手机没有用。 看锁屏界面连解锁图案都没了&#xff0c;通…

苹果公司宣布,为Apple Vision Pro打造了超过600款新应用

深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领域的领跑者。点击订阅&#xff0c;与未来同行&#xff01; 订阅&#xff1a;https://rengongzhineng.io/ 。 2月…

Java学习day13

流&#xff08;Stream&#xff09; 流是一个非常强大的概念&#xff0c;它提供了一种高效且便捷的方式来处理集合数据。你可以将流看作是一系列数据项的管道&#xff0c;你可以对这些数据进行各种操作&#xff0c;如过滤、映射、排序和归约。 流的创建 在Java中&#xff0c;…

MySQL事务的概念

一、事务定义 事务&#xff1a;事务是一个最小的不可在分的工作单元&#xff1b;通常一个事务对应一个完整的业务(例如银行账户转账业务&#xff0c;该业务是一个最小的工作单元)一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成。事务只和DML语句有关&a…

新款条码扫描数据采集终端 仓库盘点机 快递手持机 PDA手持终端

而随着技术的不断进步&#xff0c;数据采集终端也在不断地升级和优化。新款条码扫描数据采集终端、仓库盘点机PDA手持终端等高性能智能数据采集终端&#xff0c;正是在这样的背景下应运而生。 这些高性能智能数据采集终端&#xff0c;采用了最先进的技术和设计&#xff0c;具有…

计算机设计大赛 深度学习中文汉字识别

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习中文汉字识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xf…

14. Longest Common Prefix(最长公共前缀)

问题描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 问题分析 方法一&#xff1a;我们可以假设一个字符串是最长的公共子串&#xff0c;然后去验证&#xff0c;如果此串被验证了&#xff0c;再增加一位字符进行验…

SpringBoot2——工程创建、启动原理分析、配置文件、集成框架

一、SpringBoot简介 1.1 Spring Boot概述 Spring Boot 是所有基于 Spring Framework 5.0 开发的项目。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序&#xff0c;并且尽可能减少你的配置文件。 设计目的&#xff1a; 用来简化 Spring 应用的初始搭建以及开…

Java实现停车场收费系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…

STM32F1 - 系统时钟SysTick

SysTick 1> SysTick硬件框图2> SysTick的时钟源3> 1ms定时_中断方式4> 思考&#xff1a;无符号数 0 - 255 ?相关资料 1> SysTick硬件框图 SysTick属于Cotex-M3&#xff0c;是CPU外设&#xff1b; SysTick: 位宽24bit&#xff0c; 递减计数&#xff0c;自动重装…

Debezium发布历史136

原文地址&#xff1a; https://debezium.io/blog/2023/01/06/change-data-capture-with-questdb-and-debezium/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. Change Data Capture with QuestDB and Debezium …