c++二维数组指针详解

记住很重要的一点:数组名=&数组名[0],比如,对于二维数组a[3][4] ,a等同于&a[0],a[0]等同于&a[0][0]

int  main()
{  int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};int *p1;p1=a[0];  //表示数组a第一个元素的地址,相当于p1=&a[0][0]//上面可以这么理解:对于一维数组a[],数组名a是第一个元素a[0]的地址,那么对于二维数组a[][],一维数组名a[0]是它的第一个元素a[0][0]的地址p1=*a; //和上面的p1=a[0]是等同的,因为二维数组名a表示第一个一维数组a[0]的地址,则*a是表示第一个一维数组中的第一个元素即a[0][0]的地址cout<<*p1<<endl; //输出a[0][0]cout<<*(p1+1)<<endl; //输出a[0][1]int (*p2)[4];p2=&a[0]; //对整个一维数组a[0]求地址,此时p2是数组指针,指向4个int的一维数组//此时p2是一维数组a[0]的首地址,虽然p2在数值上与&a[0][0]相等,但与&a[0][0]的意义完全不一样p2=a; //和上面的p2=&a[0]是等同的,因为二维数组名a表示第一个一维数组a[0]的地址cout<<*p2<<endl; //虽然加了取值符号,但此时*p2仍然是地址,表示所指向的a[0]的第一个元素的地址,即&a[0][0]cout<<**p2<<endl; //输出a[0][0]cout<<*p2+1<<endl; //表示所指向的a[0]的第二个元素的地址,即&a[0][1]cout<<*(*p2+1)<<endl; //输出a[0][1]cout<<p2+1<<endl; //因为p2是指向4个int的数组指针,所以指针+1会跳过4个int的地址,移动到下一个一维数组a[1]的首地址//此时p2+1是一维数组a[1]的首地址,虽然p2+1在数值上与&a[1][0]相等,但与&a[1][0]的意义完全不一样cout<<*(p2+1)<<endl; //表示所指向的a[1]的第一个元素的地址,即&a[1][0]cout<<**(p2+1)<<endl; //输出a[1][0],即输出5cout<<*(p2+1)+1<<endl; //表示所指向的a[1]的第一个元素的地址,即&a[1][1]cout<<*(*(p2+1)+1)<<endl; //输出a[1][1],即输出6int (*p3)[3][4];p3=&a; //对整个二维数组a求地址,此时p3是数组指针,指向int [3][4]型数组//虽然下面三句输出的内容一样,但它们表示的意义完全不一样cout<<p3<<endl; //此时p3是二维数组a的首地址cout<<*p3<<endl; //此时*p3表示a第一个一维数组的地址,即&a[0]cout<<**p3<<endl; //此时**p3表示a第一个一维数组的第一个元素的地址,即&a[0][0]cout<<***p3<<endl; //输出a[0][0]cout<<p3+1<<endl; //因为p3是指向int [3][4]的数组指针,所以指针+1会跳过12个int的地址,移动到下一个二维数组的首地址//因此,p3+1相当于二维数组a最后一个元素的下一个地址,即&a[2][3]+1return 0;
}

 

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

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

相关文章

sql 行转列

create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int) insert into tb values(张三 , 语文 , 74) insert into tb values(张三 , 数学 , 83) insert into tb values(张三 , 物理 , 93) insert into tb values(李四 , 语文 , 74) insert into tb values(李四 , 数学…

EPSON 程序

EPSON 代码程序 1.EPSON SPEL 语言代码示例&#xff1a; // String RCdata$, InData$, toks$(0), data1$, data2$, data3$ //定义字符型变量名需要添加“$”符号 Integer N, x Double VX(500), VY(500), VZ(500) #define delay_Time 0.1 Function mainSetNet #201, "19…

有人机/无人机混合编队协同作战研究综述与展望

来源&#xff1a; 人机与认知实验室摘要&#xff1a;有人机与无人机混合编队协同作战是未来空战的重要形式。有人机是中央指挥&#xff0c;而无人机直接接受有人机的指挥和控制&#xff0c;并进行战场态势感知、目标打击等。有人机和无人机可以看成空间上分离而逻辑上一体的巨型…

C++指针数组详解

数组名都表示第一个元素的地址&#xff0c;比如int a[3]&#xff0c;则a表示&a[0] 指针数组也是数组&#xff0c;它与普通数组区别是两者元素不一样 int数组每个元素都是int型&#xff0c;数组名a对应首元素a[0]的地址&#xff0c;因此数组名a是int*型 而指针数组&#…

中国独角兽报告:2019

来源&#xff1a;泽平宏观文&#xff1a;恒大研究院 任泽平 连一席 谢嘉琪导读独角兽企业代表着新经济的活力&#xff0c;行业的大趋势&#xff0c;国家的竞争力。2018年全球资本市场风起云涌&#xff0c;独角兽势力大洗牌。有些独角兽融资困难&#xff0c;光环不再&#xff1b…

HDU 3896 Greatest TC 双连通分量

题意 给一个连通的无向图&#xff0c;有两种询问&#xff1a; \(a, b, c, d\)&#xff0c;问如果删掉\(c,d\)之间的边&#xff0c;\(a,b\)之间是否还连通\(a, b, c\)&#xff0c;问如果删掉顶点\(c\)&#xff0c;\(a,b\)之间是否还连通分析 首先DFS一遍求出进入节点的时间戳\(p…

C++ 字符串指针和字符串指针数组详解

C处理字符串有两种方式&#xff0c;即&#xff1a;指针方式和数组方式 数组方式&#xff1a;char a[] "HelloWorld";指针方式&#xff1a;const char* s "HelloWorld"; const可以忽略 接下来详细讲解一下字符串指针 首先&#xff0c;为什么字符串可以…

工业机器人的控制方式

工业机器人的控制方式 工业机器人的控制方式目前市场上使用最多的机器人当属工业机器人&#xff0c;也是最成熟完善的一种机器人&#xff0c;而工业机器人能得到广泛应用&#xff0c;得益于它拥有有多种控制方式&#xff0c;按作业任务的不同&#xff0c;可主要分为点位控制方…

软银千亿美元愿景基金PPT,孙正义解读股权投资IRR=44%

来源&#xff1a;股权投资论坛&#xff08;PE821010&#xff09;综合“正和岛(zhenghedao)、皮卡丘财经、猎云网&#xff08;ilieyun&#xff09;、财立方&#xff08;icailifang&#xff09;、腾讯科技&#xff08;qqtech&#xff09;等综合 日本软银公司成立于1981年&#x…

c#扩展方法的理解(二:接口)

namespace ExtensionInterfaceMethod {class Program{static void Main(string[] args){//使用接口变量来调用扩展方法IBasicInterface bii new BasicImplement();bii.SubStract(9, 3); }}//先创建一个简单的接口public interface IBasicInterface{int Add(int x, …

Halcon算子学习:create_sheet_of_light_model

create_sheet_of_light_model (ProfileRegion : : GenParamName, GenParamValue : SheetOfLightModelID) 创建一个执行线结构光技术3D测量的的模型 输入&#xff1a; ProfileRegion 包含要处理的轮廓的图像的ROI。&#xff08;如果所提供的区域不是矩形的&#xff0c;则使用其…

腾讯研究院院长司晓:互联网大脑的人文侧面

1989年万维网推出至今&#xff0c;互联网已经走过了30个年头。在这激荡的30年&#xff0c;随着社交网络、移动通信、云计算、物联网、工业互联网、大数据、人工智能等新技术和新事物不断涌现&#xff0c;互联网持续建立起复杂而庞大的连接&#xff0c;成为驱动经济与社会快速变…

C++对单向链表进行排序

#include <iostream> using namespace std; struct student {int num;char name[10];float score[3];float sum;student *next; };void main() {student a[5];student *h, *curr, *temp, *last; //h头指针&#xff0c;curr当前指针&#xff0c;last当前指针的上一个指针…

第六周周总结

在第六周中是忙碌的&#xff0c;对于高数&#xff0c;上课的内容也在快速的翻篇&#xff0c;我的大脑也在快速的运转着&#xff0c;讲概念的时候我很难理解过来&#xff0c;但是讲习题的时候勉勉强强能听的懂&#xff0c;每次在听不懂的地方我都会打个问号&#xff0c;以便于自…

Halcon算子学习:get_sheet_of_light_result

get_sheet_of_light_result ( : ResultValue : SheetOfLightModelID, ResultName : ) 获得用线结构光技术进行测量的标志性结果 输出&#xff1a; ResultValue 理想的测量结果。 SheetOfLightModelID 要使用的线结构光模型的句柄 输入&#xff1a; ResultName 规定应提供何…

pytorch查看模型的可训练参数

for name, param in model.named_parameters():if param.requires_grad:print(name,:,param.size())

Oracle 循环相关

1.简单的循环以loop关键字开始, exit when子句退出循环, end loop子句为循环结束标志。DECLAREPI CONSTANT NUMBER (9, 7) : 3.1415926;RADIUS INTEGER (5);AREA NUMBER (14, 2);BEGINRADIUS : 3;LOOPAREA : PI * POWER (RADIUS, 2);DBMS_OUTPUT.put_line (半…

5G芯片Top10一览,谁才是最后的赢家?

来源&#xff1a;Electronic Products、电子工程世界从无线网络基础设施和基站到智能手机再到物联网设备应用&#xff0c;这些芯片组有望简化向5G通信的过渡。5G有望提供一个完全互联的移动世界&#xff0c;其市场范围从联网汽车、智能城市、智能手机到物联网(IoT)设备&#xf…

HALCON标定板制作、标准文件输出方法、算子讲解

利用 Halcon软件自制标定板 参考博客&#xff1a; halcon相机标定及图像矫正 Halcon学习 标定助手 关键算子&#xff1a; gen_caltab ( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : ) 为具有矩形排列标记的标定板生成标定板描述文件和相应的后…

乘法逆元小结

在求解除法取模问题(a/b)%m时&#xff0c;我们可以转化为(a%(b∗m))/b&#xff0c; 但是如果b很大&#xff0c;则会出现爆精度问题&#xff0c;所以我们避免使用除法直接计算。 可以使用逆元将除法转换为乘法&#xff1a; 假设b存在乘法逆元&#xff0c;即与m互质&#xff0…