The declarations
int arr[10];
int *arr1[10];
are straightforward. The first declares an array of 10 integers while the second declares a 10 value array of pointers to int (int *
).
Now, consider these declarations:
int (*arr2)[10];
int *(*arr3)[10];
What do these even mean? Considering the parenthesis, they are trying to dereference arr2
and arr3
in the declaration? Is this even possible?
Can anyone answer what is the type of values stored in these arrays and if I do something like *arr2
or *arr3
, what would the value be?
Also, what is the type of arr2
and arr3
now?