C++指针数组详解

数组名都表示第一个元素的地址,比如int a[3],则a表示&a[0]

指针数组也是数组,它与普通数组区别是两者元素不一样

int数组每个元素都是int型,数组名a对应首元素a[0]的地址,因此数组名a是int*型

而指针数组,比如int *p[10],其每个元素都是int*型,数组名p对应首元素p[0]的地址,因此数组名p是int**型

int *是指向int型数值地址的指针

int**是指向指针变量地址的指针

所以当指取值的时候,第一个只要一个*就能答得到地址对应的值。而第二个需要2个*。

下面举一个例子:

void main(int argc, char *argv[])
{int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};int *p[3];p[0] = a[0]; //a[0]与&a[0][0]等同,因此p[0]储存a[0][0]的地址p[1] = a[1]; //p[1]储存a[1][0]的地址p[2] = a[2]; //p[2]储存a[2][0]的地址cout<<p<<endl; //指针数组第一个元素p[0]的地址,0019FEF4cout<<*p<<endl; //指针数组第一个元素p[0]的内容,即&a[0][0],0019FF00cout<<&a[0][0]<<endl;  //0019FF00cout<<**p<<endl; //p[0]中储存的地址所指的内容,即a[0][0],1cout<<p+1<<endl; //指针数组第二个元素p[1]的地址,0019FEF8cout<<*(p+1)<<endl; //指针数组第二个元素p[1]的内容,即&a[1][0],0019FF10cout<<&a[1][0]<<endl; //0019FF10cout<<**(p+1)<<endl; //p[1]中储存的地址所指的内容,即a[1][0],5int **q;q = p; //指针数组p是int*类型,因此其数组名p是int**类型printf("%d\n", **q);q++; //相当于上面的p+1printf("%d\n", **q); //5
}

 

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

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

相关文章

中国独角兽报告: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…

国产光刻机的现状究竟如何?

来源&#xff1a;人民网-上海频道随着信息社会的迅速发展&#xff0c;手机、电脑、电视等各种电子设备越来越“迷你”&#xff0c;从之前的“大哥大”到现在仅仅几个硬币厚的时尚手机&#xff0c;从老式的矮胖电视到如今轻薄的液晶电视&#xff0c;都不离开集成电路的发展&…

pytorch自定义卷积核权值参数

pytorch中构建卷积层一般使用nn.Conv2d方法&#xff0c;有些情况下我们需要自定义卷积核的权值weight&#xff0c;而nn.Conv2d中的卷积参数是不允许自定义的&#xff0c;此时可以使用torch.nn.functional.conv2d简称F.conv2d torch.nn.functional.conv2d(input, weight, biasN…

如何使用UR机器人模拟软件URsim

如何使用UR机器人模拟软件URsim 机器人软件适用版本&#xff1a;Polyscope v1.3及以上 适用机器人&#xff1a;UR3、UR5、UR10 由于优傲机器人的系统是基于Linux核心开发的&#xff0c;模拟软体URsim也是在Linux系统下运行&#xff0c;通常大家使用的电脑系统为Windows&#…

C++中派生类隐式调用与显式调用基类的构造函数

通过派生类的构造函数调用基类的构造函数有两种方式&#xff0c;隐式和显式两种。 所谓隐式方式就是在派生类的构造函数中不指定对应的基类的构造函数&#xff0c;这个时候调用的是基类的默认构造函数(即含有默认参数值或不带参数的构造函数)。而所谓显式方式&#xff0c;就是在…