浅谈指向二维数组元素的指针变量
(1)指向数组元素的指针变量
例1.有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值.
编写程序
1 #include <stdio.h>2 int main()3 {4 int a[3][4] = { 1,3,5,7,9,11,13,15,17,19,21,23 };5 int *p;6 for (p = a[0]; p < a[0] + 12; p++) //a[0]代表列指针的起点,p依次指向下一个元素7 {8 if ((p - a[0])%4 == 0)9 {
10 printf("\n"); //%4 ==0,先换行再输出元素
11 }
12 printf("%4d ", *p);
13
14 }
15 return 0;
16 }
本例是顺序输出数组中各元素之值.若要输出指定的某个数值元素(如a[2][3]),可以通过相对位置来计算.a[i][j]在数组中的相对位置的计算公式为i*m+j.所以a[2][3]的地址是(p+2*4+3),即(p+11).

(2)指向由m个元素组成的一维数组的指针变量
上例中p是int * p,指向整形数据,p+1所指元素是p所指列元素的下一个元素.
可以改用另一种方法,使p指向一个包含m个元素的一维数组.这时,如果p先指向a[0](即p=&a[0]),则p+1指向a[1],p的增值以一维数组的长度为单位.如下图

例2. 输出二维数组任一行任一列元素的值.
1 #include <stdio.h>2 int main()3 {4 int a[3][4] = { 1,3,5,7,9,11,13,15,17,19,21,23 };5 int(*p)[4], i, j;6 p = a; //p指向二维数组的0行7 printf("please enter row and colum:");8 scanf_s("%d,%d", &i, &j); //2个%d之间的分隔符要和输入时的保持一致9 printf("a[%d][%d] = %d",i, j, *(*(p + i) + j));
10 return 0;
11 }
程序分析:程序第5行中的int(*p)[4]表示定义p为一个指针变量,它指向包含4个整型元素的一维数组.注意*p两侧的括号不可缺少,如写成*p[4],则代表指针数组.
对(*p)[4]的理解,可以做出下面的比较:
①int a[4];(a有4个元素,每个元素为整型)
②int (*p)[4];(可理解为*p是int[4]类型,指向含有4个元素的数组的指针)
第②种形式表示 (*p)有4个元素,每个元素为整型.也就是p所指向的对象是有4个整型元素的数组,即p是指向一维数组的指针.p的值是该一维数组的起始地址.
注意p的类型是int (*)[4],p指向的一维数组的长度是16字节,所以p每增加1,地址就增加16字节.

相关文章:
浅谈指向二维数组元素的指针变量
(1)指向数组元素的指针变量 例1.有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值. 编写程序 1 #include <stdio.h>2 int main()3 {4 int a[3][4] { 1,3,5,7,9,11,13,15,17,19,21,23 };5 int *p;6 for (p a[0]; p < a[0] 12; p) …...
左右值引用和移动语义
文章首发公众号:iDoitnow 1. 左右值和左右值引用 什么是左值、右值呢?一种极不严谨的理解为:在赋值的时候,能够被放到等号左边的值为左值,放在右边的值为右值。例如: int sum(int x, int y){return x y;…...
一起学习用Verilog在FPGA上实现CNN----(七)全连接层设计
1 全连接层设计 1.1 Layer 进行线性计算的单元layer,原理图如图所示: 1.2 processingElement Layer中的线性计算单元processingElement,原理图如图所示: processingElement模块展开原理图,如图所示,包含…...
tomcat打debug断点调试
windows debug调试 jdk版本:1.8.0_181 tomcat版本:apache-tomcat-9.0.68.0 idea版本:2020.1 方法一 修改catalina.bat 在%CATALINA_HOME%\bin\catalina.bat中找到 set “JAVA_OPTS%JAVA_OPTS% -Djava.protocol.handler.pkgsorg.apache…...
如果持有互斥锁的线程没有解锁退出了,该如何处理?
文章目录如果持有互斥锁的线程没有解锁退出了,该如何处理?问题引入PTHREAD_MUTEX_ROBUST 和 pthread_mutex_consistent登场了结论:如果持有互斥锁的线程没有解锁退出了,该如何处理? 问题引入 看下面一段代码…...
信息论绪论
本专栏针包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:information-theory】,需要的朋友们自取。或者关注公众号【AIShareLab】,回复 信息论 也可获取。 文章目…...
Buffer Status Reporting(BSR)
欢迎关注同名微信公众号“modem协议笔记”。 以一个实网中的异常场景开始,大概流程是有UL data要发送,UE触发BSR->no UL grant->SR->no UL grant->trigger RACH->RACH fail->RLF->RRC reestablishment:简单描述就是UE触…...
代码随想录LeetCode | 单调栈问题
前沿:撰写博客的目的是为了再刷时回顾和进一步完善,其次才是以教为学,所以如果有些博客写的较简陋,是为了保持进度不得已而为之,还请大家多多见谅。 预:看到题目后的思路和实现的代码。 见:参考…...
C++之可调用对象、bind绑定器和function包装器
可调用对象在C中,可以像函数一样调用的有:普通函数、类的静态成员函数、仿函数、lambda函数、类的非静态成员函数、可被转换为函数的类的对象,统称可调用对象或函数对象。可调用对象有类型,可以用指针存储它们的地址,可…...
MongoDB--》文档查询的详细具体操作
目录 统计查询 分页列表查询 排序查询 正则的复杂条件查询 比较查询 包含查询 条件连接查询 统计查询 统计查询使用count()方法,其语法格式如下: db.collection.count(query,options) ParameterTypeDescriptionquerydocument查询选择条件optio…...
网络协议(六):网络层
网络协议系列文章 网络协议(一):基本概念、计算机之间的连接方式 网络协议(二):MAC地址、IP地址、子网掩码、子网和超网 网络协议(三):路由器原理及数据包传输过程 网络协议(四):网络分类、ISP、上网方式、公网私网、NAT 网络…...
热启动预示生态起航的Smart Finance,与深度赋能的SMART通证
2023年初加密市场的回暖,意味着各个赛道都将在新的一年里走向新的叙事。最近,我们看到GameFi赛道也在市场回暖的背景下,逐渐走出阴霾。从融资数据上看,1月获得融资的GameFi项目共12个,融资突破8000万美元,1…...
提分必练,中创教育PMP全真模拟题分享
湖南中创教育每日五题分享来啦,“日日行,不怕千万里;常常做,不怕千万事。”,每日五题我们练起来! 1、在系统测试期间,按已识别原因的类型或类别记录了失败测试的数量。项目经理首先需要从最大故…...
PID控制算法基础介绍
PID控制的概念 生活中的一些小电器,比如恒温热水器、平衡车,无人机的飞行姿态和飞行速度控制,自动驾驶等等,都有应用到 PID——PID 控制在自动控制原理中是一套比较经典的算法。 为什么需要 PID 控制器呢? 你一定用…...
Ajax 学习笔记
一、Ajax1.1 什么是AjaxAJAX Asynchronous JavaScript and XML(异步的JavaScript和XML)。Ajax是一种在无需加载整个网页的情况下,能够更新部分网页的技术,它不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术…...
力扣解法汇总1234. 替换子串得到平衡字符串
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 有一个只含有 Q, W, E, R 四种字符,且长度为 n 的字符串。 假如在该…...
C++关键字之const、inline、static
C 关键字总结 1.const const是 constant 的缩写,本意是不变的、不易改变的意思。在C中用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数使用如下: //修饰普通类型变量 const int a 7; int ba;…...
【成为架构师课程系列】怎样进行概念架构(Conceptual Architecture)?
目录 前言 什么是概念架构 概念架构阶段的3个步骤 初步设计 高层分割 分层式概念服务架构 Layer:逻辑层 Tier: 物理层 按通用性分层 技术堆叠 考虑非功能需求 【禅与计算机程序设计艺术:更多阅读】 前言 胜兵先胜而后求战,败兵先站而后求胜。…...
PostgreSQL的下载安装教程(macOS、Windows)
postgresql是GIS服务端几乎不可避免要打交道的数据库。因为mysql的空间扩展真是不尽人意。所以想要学会GIS服务端知识,postgresql(下文简称pg)你是必须要会的。 首先要知道,pg是一个空间数据库,和普通数据库不同的是pg支持空间数据的存储与操作。这里所谓的空间数据一般指…...
98年的确实卷,公司新来的卷王,我们这帮老油条真干不过.....
都说00后躺平了,但是有一说一,该卷的还是卷。这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 …...
告别‘堆已损坏’:深入理解malloc/new在Win32与x64平台下的内存管理差异
告别‘堆已损坏’:深入理解malloc/new在Win32与x64平台下的内存管理差异 在C/C开发中,内存管理一直是开发者需要面对的核心挑战之一。当项目从32位迁移到64位环境,或者升级Visual Studio版本时,许多团队都会遇到一个令人头疼的问题…...
Qt WebEngine(02):从架构到实战,构建现代桌面Web混合应用
1. Qt WebEngine架构解析:为什么它适合桌面混合开发 第一次接触Qt WebEngine时,我正为一个工业控制面板项目头疼——需要同时展示实时设备数据和远程监控页面。传统方案要么用浏览器插件(兼容性噩梦),要么自己实现HTTP…...
Simulink仿真数据管理指南:如何用Logging和Timetable格式进行高效后处理与可视化
Simulink仿真数据管理进阶:从Logging到自动化分析流水线设计 在工程仿真领域,数据管理往往成为制约效率提升的隐形瓶颈。当Simulink模型复杂度超过200个信号节点时,传统的"运行-导出-手动处理"模式会消耗工程师40%以上的时间在数据…...
3步快速上手Thorium浏览器:新手也能掌握的完整性能优化指南
3步快速上手Thorium浏览器:新手也能掌握的完整性能优化指南 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the top o…...
AI-Trader 智能交易效果全景展示
在交易的世界里,最让人焦虑的往往不是亏损本身,而是面对瞬息万变的盘面时那种“无能为力”的滞后感。很多开发者或量化爱好者都经历过这样的时刻:深夜盯着 K 线图,明明看到了突破信号,等手动敲完代码或点击鼠标时&…...
AI大模型选型生死线(2026企业采购决策白皮书):API延迟、幻觉率、合规审计通过率三维淘汰制解析
更多请点击: https://intelliparadigm.com 第一章:AI大模型选型生死线:2026企业采购决策范式重构 当算力成本下降47%、推理延迟压缩至83ms、私有化微调周期缩短至4.2小时,企业不再比拼“谁用了大模型”,而是在验证“谁…...
Cursor编辑器集成Claude 3:AI双模型编程实战与成本优化指南
1. 项目概述:当AI代码助手遇上你的IDE 最近在开发者圈子里,一个名为“Cursor-Claude-Extension”的开源项目热度持续攀升。简单来说,它是一款为Cursor编辑器设计的扩展插件,核心功能是将Anthropic公司强大的Claude系列模型&#x…...
告别语法冲突!用SLR分析法搞定编译原理中的移进/归约难题(附FOLLOW集实战)
告别语法冲突!用SLR分析法搞定编译原理中的移进/归约难题(附FOLLOW集实战) 当你第一次尝试构建LR(0)分析表时,是否遇到过这样的报错:"状态I2存在移进/归约冲突"?这种既想移进又想归约的矛盾&…...
网盘直链下载助手:如何从九大主流网盘中一键获取真实下载地址?
网盘直链下载助手:如何从九大主流网盘中一键获取真实下载地址? 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / …...
用树莓派+Python玩转无源蜂鸣器:手把手教你编一首《欢乐颂》(代码可调)
用树莓派Python玩转无源蜂鸣器:手把手教你编一首《欢乐颂》(代码可调) 在创客圈里,树莓派一直被誉为"万能小板",而Python则是入门门槛最低的编程语言之一。当这两者相遇,再搭配上一个简单的无源蜂…...
