记住很重要的一点:数组名=&数组名[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;
}

c++二维数组指针详解相关推荐

  1. python随机生成二维列表_对python产生随机的二维数组实例详解

    对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...

  2. ##二维数组指针的解引用

    ##二维数组指针的解引用 方法: int (*p)[5]; //定义一个二维数组指针,它的元素是一个包含5个int类型的一维数组 int array[3][5]; p = array; //指针指向二 ...

  3. php二维数组实例_什么是php二维数组?php二维数组实例详解

    什么是php二维数组? 二维数组又称为矩阵,本质上是以数组作为数组元素的数组,一个数组的元素如果是一维数组,那么我们就称这个数组是二维数组. PHP二维数组实例详解 我们之前的一篇文章<PHP数 ...

  4. php给二维数组加值,php给数组赋值(二维数组赋值)详解

    在php中数组赋值很简单,如果是一维数组赋值比二维数组或多维数组更简单,下面我来给各位同学介绍给数组赋值各种实例介绍,有需要了解的朋友可参考. PHP数组赋值呢?如下: 例1,一维数组赋值  代码如下 ...

  5. 指针数组与数组指针详解

    指针数组与数组指针详解 1.什么是指针数组和数组指针? 指针数组:指针数组可以说成是"指针的数组",首先这个变量是一个数组,其次,"指针"修饰这个数组,意思是说 ...

  6. php 数组 指针,php之数组指针详解

    本文主要和大家分享php之数组指针详解,首先我们会和大家分享php 数组指的针操作方法,希望能帮助到大家. 一.php 数组指针操作 利用php的内置函数:key,current,next(),pre ...

  7. 关于指针数组与数组指针详解(知识点全面)

    1.目录 1.指针数组 2.数组指针 2.它们的区别 1.指针数组 如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组.其一般形式为: 数据类型    *数组名[常量表达式][常量表达式 ...

  8. 数学建模——一维、二维插值模型详解Python代码

    数学建模--一维.二维插值模型详解Python代码 一.一维插值 # -*-coding:utf-8 -*- import numpy as np from scipy import interpol ...

  9. 如何给6个整数的一维数组某个元素赋值_数组指针详解

    文章部分资料来源: Pointer to an Array | Array Pointer - GeeksforGeeks​www.geeksforgeeks.org 介绍数组指针之前,先来回顾指针: ...

最新文章

  1. 163k地方门户网站系统团购定时结束限量控制
  2. 【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 遍历查找后坐力数据 | 尝试修改后坐力数据 )
  3. 产品经理需要去客服部门轮岗吗?
  4. garch预测 python_安利几个非常实用的 Python 库
  5. Git fetch pull 详解
  6. Spring Boot : ApplicationListner
  7. Docker-07-docker compose
  8. 简单图片隐写术练习题
  9. 一维 cnn matlab,1D-CNN 一维信号的深度学习算法和例子包括CNN - 下载 - 搜珍网
  10. 如何在cad中模块计算机,AutoCAD如何创建块 CAD模块创建方式一览
  11. FinalShell显示文件夹
  12. 美国 android手机号码,格式编辑文本为美国电话号码1(xxx)-xxxx你在android中键入?...
  13. 你的手指上有几个螺(斗)?指纹决定你的性格
  14. 国家职业资格计算机调试维修技师试题,电工国家职业资格三级(高级)理论试题...
  15. C语言习题答案【7】(仅参考)
  16. 华测P550数据导入睿铂Skyscanner工作流程
  17. NOI-1.5(29) 数字反转
  18. CSS中min-height、min-width、max-width、max-height的理解及优先级问题
  19. 计算机弹奏大家来跳舞,大家来跳舞.PPT
  20. Nginx 414 Request-URI Too Large报错解决方法

热门文章

  1. 你的 GNN,可能 99% 的参数都是冗余的
  2. 屠榜CV还不是这篇论文的终极目标,它更大的目标其实是……
  3. Step-by-step to LSTM: 解析LSTM神经网络设计原理
  4. 飞行器真的是计算机!
  5. Spring Cloud构建微服务架构(七)消息总线
  6. 阿里Java架构师精通资料:性能优化+亿级并发架构汇总+架构选型
  7. 最强阿里面试126题:数据结构+并发编程+Redis+设计模式+微服务
  8. Android官方开发文档Training系列课程中文版:数据存储之文件存储
  9. cosine_similarity和torch.cosine_similarity速度差异(人间奇事)
  10. K8s遇到问题解决思路