美文网首页
数组指针以数组 2019-03-29 晚

数组指针以数组 2019-03-29 晚

作者: 覃舒服 | 来源:发表于2019-03-29 23:15 被阅读0次

今天看到一段代码就很疑惑。请看:

int (*p)[5] = (int (*)[5])malloc(sizeof(int) * 5);
for(int i = 0; i < 5; i++)
{
  *(*p + i) = i;
}
for(int i = 0; i < 5; i++)
{ 
  printf("%d\t", (*p)[i]);
 }

我看到这段代码很奇怪,因为我觉得这里应该是使用p的,p本来就是malloc内存的首地址,为什么还要加上一个寻址符号呢?

这让我对我一开始建立起来的指针模型产生了怀疑。于是我又在程序里面将这个p的值以及*p的值以16进制的形式打印了出来。


20190329225906.png

我发现他们的值实际上是一样的。

然后我又再gdb里面查看了他们的数据类型。然而我发现虽然他们是同样的一个值。但是p和*p的数据类型是不同的,请看:


20190329230419.png

所以这应该是数组指针的锅,所以得出的结论就是如果要通过数组指针访问数组元素的话,应该要使用取值符号将数组指针转换成为数组???

同时的话,还有一点要注意的就是实际上声明(定义)的数组,他们的变量(指针)是一个常量,是不能被改变的 。

其实也直接可以通过数组的首地址指针来访问数组。

好吧,其实我还是希望能够得到一个合格合理的解释。

求教。

相关文章

  • 数组指针以数组 2019-03-29 晚

    今天看到一段代码就很疑惑。请看: 我看到这段代码很奇怪,因为我觉得这里应该是使用p的,p本来就是malloc内存的...

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

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

  • C语言指针相关

    一、指针数组 和 数组指针的区别:1:指针数组,还是数组,数组每个元素是指针。2:数组指针,是指针,指向的是数组。...

  • 混淆知识点

    1、指针数组&数组指针、常量指针&指针常量、函数指针&指针函数 数组指针&指针数组 数组指针的定义 int (*p...

  • 指针与数组和函数的几个关系

    指针数组、数组指针 指针数组。数组的元素类型是指针如:int* a[4] 数组指针。指向数组的指针变量如:int ...

  • 函数指针

    概念: 指针函数, 函数指针, 指针数组, 数组指针, 指向数组的指针, 指向函数指针数组的指针。

  • 指针笔记

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

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

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

  • JNI基础 -- C++基础知识(指针数组)

    数组和指针,数组指针,指针数组 数组 声明一个数组 这个比较简单,不做过多介绍 数组指针 数组指针是一个指针,指向...

  • 指针

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

网友评论

      本文标题:数组指针以数组 2019-03-29 晚

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