我可以声明:
int (*ap)[N];
So ap
是指向大小为 N 的 int 数组的指针。为什么这很有用?如果我将它传递给函数,它可以用它做哪些有用的事情,而它不能用指向数组内容的普通指针来做?
C常见问题解答说:
2.12: 如何声明一个指向数组的指针?
通常,你不想这样做。
指向数组的指针可用于动态分配多维数组 N,其中 N-1 维已知。下面创建了一个 Nx3 数组。
int (*ap)[3];
ap = malloc(N * sizeof(*ap));
/* can now access ap[0][0] - ap[N-1][2] */
@Adam E/Cruachan,这与指向指针的指针不同。 ap 是指向包含三个连续整数的内存块的单个指针。 ap++ 会将指针地址前进到下一个由三个整数组成的块。为了int **pp;
, pp 指向一个整数指针,每个指针都可以指向内存中任意位置的整数。
+-----+ +------+ +-----+
ap ---> | int | vs. pp ---> | int* | -> | int |
| int | +------+ +-----+
| int | pp+1 -> | int* | -\
+-----+ +------+ \ +-----+
ap+1 -> | int | : : -> | int |
| int | +-----+
| int |
+-----+
: :
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)