|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int main()
- {
- char *array[5] = {"FishC", "Five", "Star", "Good", "WoW"};
- char *(*p)[5] = &array;
- int i, j;
- for (i = 0; i < 5; i++)
- {
- for (j = 0; (*p)[i][j] != '\0'; j++)
- {
- printf("%c ", (*p)[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
复制代码
就是这个第二行的 char *(*p)[5] = &array;到底怎么理解,array为什么还能取地址?取得是整个数组的地址吗?那前面的数组指针为什么要用 char *(*p),孩子被这一行困扰好久了
char *(*p) 应该这么来理解:括号中的 * 表示 p 是一个指针,括号外面的 int * 表示 p 指向的数据的类型。array 第 0 个元素的类型为 int *,所以在定义 p 时要加两个 *。
|
|