Dav*_*ang 1 c++ arrays pointers
这是两行代码:
int (*parry)[10] = &arr // Line # 1
int *(&arrRef)[10] = ptrs // Line # 2
Run Code Online (Sandbox Code Playgroud)
第1行:
parry
是一个指向int
大小为10 的数组的指针.
它是否意味着:
parray[1]
指向的地址arr
,parray[2]
要点的 arr
parray[10]
要点或arr
?我Line # 1
什么时候用?
解:
#include <iostream>
int main(
{
int arr[10] = { 3, 54 };
int (*parry)[10] = &arr;
std::cout << (*parry)[0] << " " << (*parry)[1] << " " << (*parry)[3] << " " << parry[4] << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
3,54,0,索引为4的arr的十六进制地址.
看起来里面parry[0]
是一个指向arr
与索引关联的指针.所以,parry[0]
---> arr[0]
.
第2行:
arrRef
是对int
十个指针大小的数组的引用.arrRef
被提及ptrs
.
这是否意味着:
arry[1]
是一个int
指针?...arry[10]
是一个int
指针?这可以用什么例子?
如有疑问,请参阅顺时针/螺旋规则.
int (*parry)[10] = &arr;
Run Code Online (Sandbox Code Playgroud)
parry
是一个指向10 int
秒数组的指针.
int *(&arrRef)[10] = ptrs;
Run Code Online (Sandbox Code Playgroud)
arrRef
是指向int的10个指针数组的引用.
例:
int main()
{
int arr[10];
int* ptrs[10];
int (*parry)[10] = &arr;
int *(&arrRef)[10] = ptrs;
}
Run Code Online (Sandbox Code Playgroud)