先贴code

二维数组

A[3][2]={1,2,3,4,5,6}
          A:0x7ffc3cd4ee40*A:0x7ffc3cd4ee40*A[0]:1A+1:0x7ffc3cd4ee4c 二维数组,加了三个地址,一行的元素地址空间*(A+1):0x7ffc3cd4ee4c 同 A+1*(A+1)+1:0x7ffc3cd4ee50  加一个元素地址*A+1:0x7ffc3cd4ee44 *A 加了一个地址长度((*A+1)+1):0x7ffc3cd4ee48 *A 又加了一个元素地址,一共两个元素地址
*((*A+1)+1):3 *A[0]=1,加两个元素地址 *((*A+1)+1)=3
*(*(A+1)+1):5 A+1加一行的元素地址,*(A+1)=&4,加两个元素地址 *(*(A+1)+1)=5*A+2:0x7ffc3cd4ee48*A+3:0x7ffc3cd4ee4c

二维数组好像要两个“”才能表示元素,一个“”只能表示地址??

一位数组

B[3]={1,2,3}
   B:0x7ffec5a75634*B:1
*B+1:2B+1:0x7ffec5a75638
*(B+1):2
*(B+1)+1:3

三维数组

int C[2][2][2]={1,2,3,4,5,6,7,8};
C:0x7ffe8275c620
*C+1:0x7ffe8275c628
*(*(C+1)):0x7ffe8275c630
*(*(*C+1)):3

code

#include <iostream>int main() {std::cout << "Hello, World!" << std::endl;int A[2][3]={1,2,3,4,5,6};std::cout<<"          A:"<<A<<std::endl;std::cout<<"         *A:"<<*A<<std::endl;std::cout<<"      *A[0]:"<<*A[0]<<std::endl;std::cout<<"        A+1:"<<A+1<<" 二维数组,加了三个地址,一行的元素地址空间"<<std::endl;std::cout<<"     *(A+1):"<<*(A+1)<<" 同 A+1"<<std::endl;std::cout<<"   *(A+1)+1:"<<*(A+1)+1<<"  加一个元素地址"<<std::endl;std::cout<<"       *A+1:"<<(*A+1)<<" *A 加了一个地址长度"<<std::endl;std::cout<<" ((*A+1)+1):"<<((*A+1)+1)<<" *A 又加了一个元素地址,一共两个元素地址"<<std::endl;std::cout<<"*((*A+1)+1):"<<*((*A+1)+1)<<" *A[0]=1,加两个元素地址 *((*A+1)+1)=3"<<std::endl;std::cout<<"*(*(A+1)+1):"<<*(*(A+1)+1)<<" A+1加一行的元素地址,*(A+1)=&4,加两个元素地址 *(*(A+1)+1)=5"<<std::endl;std::cout<<"       *A+2:"<<*A+2<<std::endl;std::cout<<"       *A+3:"<<*A+3<<std::endl;std::cout<<std::endl;int B[3]={1,2,3};std::cout<<"   B:"<<B<<std::endl;std::cout<<"  *B:"<<*B<<std::endl;std::cout<<"*B+1:"<<*B+1<<std::endl;std::cout<<" B+1:"<<B+1<<std::endl;std::cout<<"*(B+1):"<<*(B+1)<<std::endl;std::cout<<"*(B+1)+1:"<<*(B+1)+1<<std::endl;std::cout<<std::endl;int C[2][2][2]={1,2,3,4,5,6,7,8};std::cout<<"C:"<<C<<std::endl;std::cout<<"*C+1:"<<*C+1<<std::endl;std::cout<<"*(*(C+1)):"<<*(*(C+1))<<std::endl;std::cout<<"*(*(*C+1)):"<<*(*(*C+1))<<std::endl;return 0;
}

总结

通过比较不同维数的数组及其输出可以发现,

  • 只有*的个数=维数的时候才表示对应元素,小于元素时表示地址。
  • 多维数组名表示首地址,地址来说*c=c,表示该行的首地址,c+1*(c+1)即是第二行的首地址。而*c+1表示该行下一个元素的地址
  • *c表示元素时,*c+1即表示其下一个元素。

二维数组元素+地址的思考相关推荐

  1. C语言二维数组元素的多种表示方法小结

    C语言二维数组元素的多种表示方法小结 昨天,一个小可爱问我,为何函数中,数组可以改变主函数中的值,比如b[i],就可以改原来数组中的值.其实b[i] 等价于 *(b + i)也是通过地址间接更改的,小 ...

  2. c 语言 二维数组地址,C/C++ 关于一维或二维数组首地址表示含义

    C/C++ 关于一维或二维数组首地址表示含义 发布时间:2020-06-26 10:35:21 来源:51CTO 阅读:210 作者:sonissa 这是一个经常会忘却的知识点,最近也一直在吃这方面的 ...

  3. 指针 二维数组元素引用

    二维数组元素指针引用 1.定义 2.数组指针和指针数组的区别 1.二维数组可以理解为是一个一维数组,不过每个数组元素又是一个一维数组 int a[2][3]={{1,2,3},{4,5,6}}; 可以 ...

  4. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用

    贺老师教学链接  C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...

  5. php 数组元素往后移动,php 二维数组 元素移动

    [已关闭问题] 关闭于 2014-11-20 16:02 二维数组元素如何实现,满足一定的条件,跳到下下个元素,不满足的话,顺序执行呢? 比如: header("Content-type:t ...

  6. 动态二维数组外圈元素值的和_C语言 | 用指向元素的指针变量输出二维数组元素的值...

    例33:有一个3*4的二维数组,要求用C语言实现指向元素的指针变量输出二维数组个元素的值. 解题思路:二维数组的元素时整型的,它相当于整型变量,可以用int*型指针变量指向它.二维数组的元素在内存中是 ...

  7. 编写一个函数get_average()获取整型数组元素的平均值。要求这个函数既可以用来求一维数组元素的平均值,也可以求二维数组元素的平均值。

    题目内容: 编写一个函数get_average()获取整型数组元素的平均值.要求这个函数既可以用来求一维数组元素的平均值,也可以求二维数组元素的平均值.在main()函数中通过具体的一维数组Array ...

  8. 编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推。

    编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推.     例如,原始二维数组为,逆向存放后变为.试建立一个类 ...

  9. 交换二维数组元素c语言,二维数组中元素替换问题!

    二维数组中元素替换问题! 题目:对某个二维数组右上三角的全部元素(不包括对角线上的元素)做如下变换: (1)若该数是偶数,则找到左下三角中和它关于对角线对称的元素用这两个元素的最大公约数替换该数 (2 ...

最新文章

  1. 02_MyBatis项目结构,所需jar包,ehcache.xml配置,log4j.properties,sqlMapConfig.xml配置,SqlMapGenerator.xml配置
  2. 20-爬虫之scrapy框架CrawlSpider07
  3. 避免在循环体中声明创建对象
  4. es解决只能查询10000条数据方案
  5. Hexo 入门指南(七) - 评论 分享
  6. 【爱有失落时】风与渊
  7. Python系统命令– os.system(),subprocess.call()
  8. java placeholder_java swing JTextField设置PlaceHolder
  9. 说出来你可能不信,内核这家伙在内存的使用上给自己开了个小灶!
  10. django 下载返回文件流
  11. xposed框架安装使用教程(第一篇)
  12. lisp实心圆点怎么画_实心小圆点符号怎么打
  13. python重命名异常_Python:如何忽略异常并继续?
  14. 家里wifi网速越来越慢_家里网速变得很慢怎么排查原因
  15. almost unreal歌词翻译_Almost Lover歌词
  16. 如何识别图片文字,PaddleOCR机器学习开源项目使用 | 机器学习
  17. 【QT】linux下alsa库的移植和QT中音视频的处理笔记
  18. DijkstraAlgorithm(迪杰斯特拉算法)
  19. CentOS 7.5 安装Tomcat教程
  20. USB 3G上网卡讲解之一

热门文章

  1. exagear android8,exagear模拟器安卓8.0
  2. 维修线性流量阀的内筒设计
  3. 新形象,新征程,新时代,光环云荣获2021GIDC“最佳IDC技术融合趋势奖
  4. [转]区块链主流开源技术体系介绍
  5. aarch64 poky linux,python - aarch64-poky-linux-gcc:错误::没有这样的文件或目录 - 堆栈内存溢出...
  6. 【matplotlib】如何进行颜色设置选择cmap
  7. 【人员产量动态看板管理】
  8. 【复旦大学保险科技实验室:区块链等技术走出实验室使保险业更接地气】
  9. 什么是泛型以及泛型的作用?
  10. 也谈联想收购IBM PC部