6.5在C语言中,如何声明一个数组指针?
通常, 你不需要。当人们随便提到数组指针的时候, 他们通常想的是指向它的第一个元素的指针。
考虑使用指向数组某个元素的指针, 而不是数组的指针。类型T 的数组蜕变成类型T 的指针(参见问题6.3), 这很方便; 在结果的指针上使用下标或增量就可以访问数组中单独的成员。而真正的数组指针, 在使用下标或增量时, 会跳过整个数组, 通常只在操作数组的数组时有用—— 如果还有一点用的话。参见问题6.15。
如果你真的需要声明指向整个数组的指针, 使用类似“int (*ap)[N];” 这样的声明。其中N 是数组的大小(参见问题1.7)。如果数组的大小未知, 原则上可以省略N, 但是这样生成的类型, “指向大小未知的数组的指针”, 毫无用处。
参见问题6.9。
考虑使用指向数组某个元素的指针, 而不是数组的指针。类型T 的数组蜕变成类型T 的指针(参见问题6.3), 这很方便; 在结果的指针上使用下标或增量就可以访问数组中单独的成员。而真正的数组指针, 在使用下标或增量时, 会跳过整个数组, 通常只在操作数组的数组时有用—— 如果还有一点用的话。参见问题6.15。
如果你真的需要声明指向整个数组的指针, 使用类似“int (*ap)[N];” 这样的声明。其中N 是数组的大小(参见问题1.7)。如果数组的大小未知, 原则上可以省略N, 但是这样生成的类型, “指向大小未知的数组的指针”, 毫无用处。
参见问题6.9。