论C语言中二级指针和二维数组之间的区别

LyndonMario 2018-05-28 原文

论C语言中二级指针和二维数组之间的区别

 

 刚开始学习C语言的时候,觉得一个数组可以定义一个一级指针去访问,想当然的就觉得可以定义一个二级指针去访问二维数组。很显然这是错误的。

 

我们来看看C语言的数组在内存中的存储方式。

 

实际上C语言中的数组,实际上都是一维的。即不管是几维的,都是通过数组的数组这种方式来创建的,实际上它们在内存中的储存方式还是连续的一维数组。

那么我们再来回来刚刚的问题:为何二级指针不能指向一个二维数组?

二级指针首先是指针的指针,即一个对象的地址的地址,而实际上我们的数组所需要的指针只是需要的指针的一个对象的地址,只是这个指针还有其他的指向位置的限制。

 

因此我们在要用到一个指针将一个二维数组传递的时候,这个指针的定义方式应该是这样的。int (*p)[10],而不是int *p[10],后者表示的是一个指针数组(即这个一维数组有10个元素,每个元素都是int型指针)。

 

另外关于二级指针,它是地址的地址,当它作为形参的时候,可以接受二级指针**p或者是指针数组*p[]作为参数传入(可以这么理解,本身一个一维数组的数组名就是指向一个地址的,然后里面的元素又是指向某个元素的地址,即地址的地址)。

 

参考博客:https://www.linuxidc.com/Linux/2015-03/115055.htm

posted on 2018-05-28 10:26 LyndonMario 阅读() 评论() 编辑 收藏

 

 
版权声明:本文为LyndonMario原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/LyndonMario/p/9098794.html

论C语言中二级指针和二维数组之间的区别的更多相关文章

  1. c++ 获取文件创建时间、修改时间、访问时间、文件内容长度

    int GetFileInfo(string& strPath, int& iCreateTi […]...

  2. C++索引越界

    避免”索引越界”错误的规则如下(针对C++):   不要使用静态或动态分配的数组,改用 […]...

  3. 用Visual C++创建WPF项目的三种主要方法

    用C++创建WPF项目的三种主要方法 The problem with using XAML from C++ […]...

  4. c#爬取地图上门店信息,支持百度,高德,搜狗地图

    这几天,听一个朋友在抱怨,买门店信息难,不准确,于是趁着端午假期,无聊时间,做了一个可以采集门店信息的小工具 […]...

  5. C. K-Complete Word(小小的并查集啦~)

    永久打开的传送门 \(\color{Pink}{————-分割 […]...

  6. 跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:三、上传图片到服务器

    上一篇跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:二、与服务端通信,Hello bitcms […]...

  7. 2021牛客多校4 C – LCS (构造)

    构造字符串s1,s2,s3使得LCS(s1,s2)=a,LCS(s2,s3)=b,LCS(s3,s1)=c 我 […]...

  8. C#使用cplex求解简单线性规划问题(Cplex系列-教程二)

    若还未在项目中添加cplex的引用,可以参阅上一篇文章。本文主要介绍利用C#求解线性规划的步骤,对线性规划模型 […]...

随机推荐

  1. 国际快递查询接口JAVA示例-trackingmore

    国际快递查询接口的需求量很大,例如一些跨境电商B2C网站、快递查询APP、快递柜、跨境物流公司等都会需要用到国 […]...

  2. Powershell:关于hashtable你想知道的一切

    译者语:本篇为一篇译文,详细介绍了在powershell中如何使用hashtable这种数据类型.本文为本人2 […]...

  3. this、apply、call、bind

    码文不易,转载请带上本文链接,感谢~ https://www.cnblogs.com/echoyya/p/14 […]...

  4. Java日期和时间

    概念 时区   不同时区在同一时刻,它们的本地时间是不同的,全球一共有24个时区,我们把伦敦所在的时区称为标准 […]...

  5. 常用算法合集(一)

    学习笔记,转载请注明出处,谢谢。 常用算法合集(一) 目录 常用算法合集(一) 查找算法 顺序查找 字符串匹配 […]...

  6. 千万数据量数据表分表实践

    需求 对平均 1200w 数据量的数据表进行优化 数据表中有 2016年,2017 年,2018 年,2019 […]...

  7. 阿里巴巴鹰眼技术解密

    作者|周小帆 编辑|小智 最新一代的阿里全链路监控系统鹰眼 3.0,同时将基础设施层、分布式应用层、业务逻辑层 […]...

  8. 嵌入式开发通信协议-uart和usart

    本文摘自:http://www.elecfans.com/baike/wuxian/2017110857689 […]...

展开目录

目录导航