二维数组的行指针与列指针

news2024/11/20 19:34:08

二维数组的行指针与列指针

笔记来源:懒猫老师-C语言-用指针访问二维数组(指针与二维数组)

声明:本文笔记来自bili@懒猫老师,仅供学习参考

回顾一维数组

int a[3];//其中a或a[0]是数组首地址
//a+1指向第二个元素的地址,解引用后得到元素*(a+1)

二维数组

int a[3][4];//其中a[i]为一维数组名,a[i][j]为数组名+下标,第i个一维数组中第j个元素
//a[0]+1指向第二个元素(这个元素是第二个一维数组)



a+i //为行指针,其内容为一维数组指针
*(a+i) //获得一维数组指针(列指针)
*(a+i)+j //获得一维数组中指向某一个具体元素的指针(列指针)
*(*(a+i)+j) //获得一维数组中某一个具体元素(列指针所指元素)

行指针(二维数组中指向“一维数组”首元素的指针)
a是指向包含4个元素的一维整型数组的行指针,步长为16个字节(一个整型元素4个字节,一个一维整型数组4个整型元素),a+1直接移动16个字节,这也意味着行指针无法直接访问二维数组的每个元素,要访问的话需要步长是4字节。

列指针(二维数组中指向某个具体数组元素的指针称为列指针)
a[0]为第一个一维数组的数组名,也是其首地址,步长为4个字节(一个整型元素4个字节)
a[0]+1等价于&a[0][1]

行指针与列指针关系


访问二维数组元素的三种方式
(1)下标法:a[i][j]
(2)列指针访问:*(a[i]+j)
(3)行指针转为列指针访问:* (*(a+i)+j)【其中*(a+i)与a[i]等价】

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

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

相关文章

The SDK location is inside Studio install location 解决

The SDK location is inside Studio install location 解决 安装 Android Studio SDK 时提示:The SDK location is inside Studio install location 解决 问题: 由于 SDK 与 编辑器(Android Studio)的安装在同一目录下所以报错。 解决 你需要在 Andro…

五、RocketMQ发送顺序消息

顺序消息的应用场景 在有序事件处理、撮合交易、数据实时增量同步等场景下,异构系统间需要维持强一致的状态同步,上游的事件变更需要按照顺序传递到下游进行处理。 例如需要保证一个订单的生成、付款和发货,这三件事情是被顺序执行的。 如…

C# OpenVINO Det 物体检测

效果 耗时 elephant:89% Preprocess: 0.00ms Infer: 47.21ms Postprocess: 11.63ms Total: 58.84ms 项目 代码 using OpenCvSharp; using Sdcb.OpenVINO; using Sdcb.OpenVINO.Natives; using System; using System.Diagnostics; using System.Drawing; using System.Text; …

淘宝店铺订单详情接口,淘宝店铺订单列表数据,淘宝店铺订单物流接口,淘宝店铺订单线下发货接口-

淘宝店铺订单详情接口可以理解为淘宝开放平台(Taobao Open Platform)提供的API接口1。 该接口可以获取淘宝店铺的订单详情,包括订单号、买家昵称、收货人姓名、收货地址、邮编、电话、商品描述、价格等信息。开发者可以在淘宝开放平台注册一…

使用winUSB进行USB开发

什么是winUSB WinUSB是Windows操作系统提供的一种通用USB驱动程序,用于简化USB设备的开发和使用。它是一个用户模式驱动程序,可以在Windows XP及更高版本的操作系统上使用。WinUSB提供了一组API和工具,使开发人员能够与USB设备进行通信&…

C++11可变参数模板

文章目录 1.可变参数模板的介绍1.1C语言中的可变参数1.2C98/C11的类模板和函数模板1.3可变参数的函数模板1.4展开参数包递归展开初始化列表展开 2.可变参数模板的应用 1.可变参数模板的介绍 1.1C语言中的可变参数 1.2C98/C11的类模板和函数模板 C98/03,类模版和函…

Numpy(一)简介与基本使用

Numpy(一)简介与基本使用 一、Numpy简介 1.Numpy是一个运行速度非常快的数学库,主要用于数组计算 2.包含:N维数组对象ndarray、广播功能函数、整合C/C/Fortran代码工具、包含线性代数/傅里叶变换/随机数生成等功能 3.优点&…

ChatGPT快速入门

ChatGPT快速入门 一、什么是ChatGPT二、ChatGPT底层逻辑2.1 实现原理2.2 IO流程 三、ChatGPT应用场景3.1 知心好友3.2 文案助理3.3 创意助理3.4 角色扮演 一、什么是ChatGPT ChatGPT指的是基于GPT(Generative Pre-trained Transformer)模型的对话生成系…

python字典、列表排序,从简单到复杂

因工作原因,需要频繁对python字典(dict)、列表(list)等进行各种各样的排序,发现网上这块的资料又多又杂,尤其涉及到lambda的,让人觉得难以理解看不下去,因此写了这篇文章,从简单到复杂,配合例子…

【Eclipse】安装教程

首先打开官网:Eclipse Downloads | The Eclipse Foundation 这里我选择了下载最新版本 下载好后,双击下载的文件 ,即可进入到安装页面 点击第一个进行安装: 最后安装成功! 补充: 【Eclipse】安装JAVA EE插…

Jmter接口网站压力测试工具使用记录

1.首先下载Jmeter 官方地址:Apache JMeter - Apache JMeter™ 回到顶部 2.安装Jmeter 把下载的文件进行解压,产生如下目录: 打开bin文件夹下的jmeter.bat文件及进入程序的主界面窗体jmeter.log是日志文件。 主意:需要配置java环…

河北专升本(C语言)

目录 一:C语言的构成特点 二: 数据类型 三: 常量、变量、运算符及表达式 (一)标识符 (二)常量 (三)变量:其值可以改变的量 (四)各种类型数据混合运算 &…

打印编译程序固件的环境信息

在编译程序固件的时候,我们常常会有一个软件版本号,用来区分不同的版本,有时候又没变化软件版本号,重新发两个debug版本给测试验证,那我们就需要在程序中埋入一些环境信息,下面有两种方法来加入一下简单的信…

APP 备案公钥、签名 MD5、SHA-1、SHA-256获取方法。

公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取,最简单的就是以 jadx-gui 为例。 1.下载 jadx-gui 工具 ,点击此处 下载 jadx-gui 工具。 2.下载完成后,解压压缩包,双击 jadx-gui-1.4.7.exe 运行。 3.…

Neo4j入门基础:CREATE,DELETE,SET,REMOVE(看不懂我直接吃...)

1. 创建节点 1.1 创建一个节点 create (s:student1)创建一个标签为student1的节点 1.2 创建多个节点 create (s2:student2),(s3:student3)同时创建两个节点,标签分别为:student2,student3 1.3 创建节点并附带(多个&#xff0…

MAC上设置IDEA如何一个窗口打开多个项目,多个tab

1、IDEA一个窗口打开多个项目 如果你打开了多个项目、每次切换都要半天,想让项目都汇聚到top栏 点击 Window - Merge All Project Windows 即可 但是这样比较挫,每次打开新的项目都还是会重新打开一个IDEA窗口 so,如何设置项目在同一个窗口…

树模型(一)孤立森林

孤立森林(Isolation Forest)算法是西瓜书作者周志华老师的团队研究开发的算法,一般用于结构化数据的异常检测。 异常的定义 针对于不同类型的异常,要用不同的算法来进行检测,而孤立森林算法主要针对的是连续型结构化…

Junit单元测试之Maven项目集成Jacoco,查看覆盖率报告

关于单元测试以及本文Calculate类等内容,请见前述文章Junit单元测试_Joy T的博客-CSDN博客 要学Jacoco,首先要知道测试覆盖率是什么! 测试覆盖率 测试覆盖率表示的是测试用例所能触及(或“覆盖”)的代码百分比。换句…

2023年起重信号司索工(建筑特殊工种)证考试题库及起重信号司索工(建筑特殊工种)试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年起重信号司索工(建筑特殊工种)证考试题库及起重信号司索工(建筑特殊工种)试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特…

kafka安装和使用的入门教程

这篇文章简单介绍如何在ubuntu上安装kafka,并使用kafka完成消息的发送和接收。 一、安装kafka 访问kafka官网Apache Kafka,然后点击快速开始 紧接着,点击Download 最后点击下载链接下载安装包 二、启动kafka 经过上一步下载完成后&#xff…