int (*ptr)[4]; //ptr 是一个指针,指向一个含有 4 个 int 元素的 一维数组 。即ptr 是一个数组指针
举例:
// C program to illustrate pointer of array
#include<stdio.h>
int main()
{
int arr[] = { 3, 5, 6, 7};
int *p = arr;
int (*ptr)[4] = &arr;
printf("p = %p, ptr = %p\n", p, ptr);
printf("*p = %d, *ptr = %p\n", *p, *ptr);
printf("sizeof(p) = %lu, sizeof(*p) = %lu\n",
sizeof(p), sizeof(*p));
printf("sizeof(ptr) = %lu, sizeof(*ptr) = %lu\n",
sizeof(ptr), sizeof(*ptr));
int brr[3][4] = {
{10, 11, 12, 13},
{20, 21, 22, 23},
{30, 31, 32, 33}
};
ptr = brr;
printf("%p %p %p\n", ptr, ptr + 1, ptr + 2);
printf("%p %p %p\n", *ptr, *(ptr + 1), *(ptr + 2));
printf("%d %d %d\n", **ptr, *(*(ptr + 1) + 2), *(*(ptr + 2) + 3));
printf("%d %d %d\n", ptr[0][0], ptr[1][2], ptr[2][3]);
return 0;
}
64位系统上运行结果:
p = 000000000061FE00, ptr = 000000000061FE00
*p = 3, *ptr = 000000000061FE00
sizeof(p) = 8, sizeof(*p) = 4
sizeof(ptr) = 8, sizeof(*ptr) = 16
000000000061FDD0 000000000061FDE0 000000000061FDF0
000000000061FDD0 000000000061FDE0 000000000061FDF0
10 22 33
10 22 33