C ++数组地址分配给指针

阿什雷迪姆里

我对指针的概念很陌生,最近遇到了这一行代码:

int arr[]={1,2,3};
int (*p)[3] = &arr;

上面的代码行和下面的代码有什么区别:

int arr[]={1,2,3};
int *p = arr;

以及为什么会给出错误:

int arr[]={1,2,3};
int *p = &arr;
萨胡

类型差异

该类型p

int (*p)[3] = &arr;

int (*)[3],即指向3 ints数组的指针

的类型p

int *p = arr;

很简单int*,即指向的指针int

作为结果,

在第一种情况下,

*p计算结果为3 ints的数组,即int [3]

在第二种情况下,

*p计算结果仅为int


要获得的第一个元素arr,您必须使用(*p)[0]p[0][0]在第一种情况下。

要获取的第一个元素arr,您必须使用*pp[0]在第二种情况下。


要获取的最后一个元素arr,您必须使用(*p)[2]p[0][2]在第一种情况下。

要获取的最后一个元素arr,您必须使用*(p+2)p[2]在第二种情况下。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++数组地址分配给指针

来自分类Dev

C ++将指针数组分配给struct

来自分类Dev

可以将匿名派生类的地址分配给基类指针C ++吗?

来自分类Dev

在 C 中将数组的头指针分配给联合中的现有数组

来自分类Dev

将char数组中的指针分配给字符串C中的每个单词

来自分类Dev

C ++通过别名指针默默地将错误的类型分配给数组元素

来自分类Dev

在C中取消引用变量并将其地址分配给指针变量有什么区别?

来自分类Dev

C#:将数组分配给另一个数组:复制还是指针交换?

来自分类Dev

将新值传递并分配给指针C ++

来自分类Dev

c将函数指针分配给变量

来自分类Dev

C动态内存分配给void指针

来自分类Dev

段故障,在c中分配给双指针

来自分类Dev

C ++删除分配给新的字符指针

来自分类Dev

如何在C中将argv分配给指针变量?

来自分类Dev

C ++:将值分配给字符指针

来自分类Dev

无法将内存分配给c中的指针

来自分类Dev

C ++ Arduino:将函数分配给函数指针

来自分类Dev

段故障,在c中分配给双指针

来自分类Dev

如何在结构中初始化 int 指针并将其分配给 C 中的数组?

来自分类Dev

在C中将char数组分配给char数组

来自分类Dev

为什么不能将数组的地址分配给指针?

来自分类Dev

将非指针分配给指针?(在C ++中子类化指针类型?)

来自分类Dev

C ++将char **分配给字符串数组

来自分类Dev

在C中构造(将值分配给struct数组)

来自分类Dev

将数组分配给* mut c_void

来自分类Dev

通过C#中的反射分配给数组字段

来自分类Dev

将变量void *分配给void C的数组

来自分类Dev

将对象分配给数组 C#

来自分类Dev

C99警告将空指针分配给非空指针?

Related 相关文章

热门标签

归档