美文网首页
数组指针与数组 2019-03-30 午

数组指针与数组 2019-03-30 午

作者: 覃舒服 | 来源:发表于2019-03-30 14:13 被阅读0次

一般的都是讲数组指针和数组混为一谈。但是经过我的实验的话,他们两个其实是不一样的。

首先我们来看一下数组指针以及数组的类型表示:

BASETYPE (*NAME)[COUNT]; // 数组指针
BASETYPE NAME[COUNT]; // 数组

因为数组变量实际上是数组首地址的指针,因为一维数组再内存中的空间是连续的(至于多维数组,实际上就是通过将其他数组首地址的指针作为元素来实现的,理论上来说,即使是将一个数组作为它本身的一个元素也是可以的)。所以可以通过偏移这个指针(数组变量的值)来实现遍历数组的效果。但是作为数组指针的话,这样字是不行的。

但是同时经过我的实验,假设有一个数组指针p,类型为int (*)[5]。我打印用16进制打印*p以及p的值,实际上他们的值是相同的。同时,假设有一个数组变量的话,使用gdb打印这个数组变量的值,会直接将这个数组打印出来,而打印出这个数组的地址的话会打印这个数组首元素的首地址(这个可以自己去验证一下)。

这个证明了什么呢,证明作为数组指针以及数组来说,他们的值是相同的。但这只是证明了他们的值相同,并不证明他们完全相同。这是因为数据类型的原因。

还有一点,我们都知道。在使用数组作为函数参数的时候。传递进去的数组一定会退化成为一个指针。一维数组会变成一个单纯的指针,而二维数组这会变成一个二维指针,依次类推。

但是如果是作为一个数组指针传递进去的话,就不存在这样子的问题。简单来说就是我再函数中通过数组指针取值依旧能过的到数组的大小的信息。

其实我觉得饿具体的数组指针和数组是怎么一回事。只有写C的才清楚...

相关文章

  • 数组指针与数组 2019-03-30 午

    一般的都是讲数组指针和数组混为一谈。但是经过我的实验的话,他们两个其实是不一样的。 首先我们来看一下数组指针以及数...

  • C语言的数组指针与指针数组(One)

    一、数组指针与指针数组: 数组指针<——>本质是指针 指针数组<——>本质是数组上图: 二、数组指针: int ...

  • 指针数组 & 数组指针 & 函数指针

    一、指针数组 & 数组指针 普通数组: 即数组名a与(*p)等价,都代表数组的首地址,此为数组指针 指针数组: ...

  • 指针笔记

    指针数组和数组指针 数组指针是指向数组的指针,指针的值与数组首元素地址相同,但范围是整个数组,所以数组指针和数组名...

  • C语言21 指针数组与数组指针

    C语言21 指针数组与数组指针 指针数组的定义 指针数组的赋值 结构体指针数组 分析下面的代码 数组指针的定义 数...

  • 指针

    指针数组与数组指针 在这里数组指针是指向数组的指针,其本质为指针,指向的对象是数组。由于数组的形式多样所以数组指针...

  • iOS 指针详解

    指针数组与数组指针在这里数组指针是指向数组的指针,其本质为指针,指向的对象是数组。由于数组的形式多样所以数组指针的...

  • 2019-09-18C语言复杂表达式与指针高级应用

    1.指针数组与数组指针 1.1、字面意思来理解指针数组和数组指针 (1)指针数组的实质是一个数组,这个数组中存储的...

  • C语言特性(指针数组和指向指针变量的指针)

    指针数组和指向指针变量的指针 指针数组与main()函数形参 声明指针数组与声明普通数组的语法类似,其语法格式如下...

  • 数组知识点

    数组指针与指针数组: int(*p)[4]; --定义数组指针p,指向含4个元素的一维整型数组的指针变量(是指针)...

网友评论

      本文标题:数组指针与数组 2019-03-30 午

      本文链接:https://www.haomeiwen.com/subject/reijbqtx.html