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)