|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int main()
- {
- char *array[5] = {"FishC", "Five", "Star", "Good", "WoW"};
- char *(*p)[5] = &array;
- int i, j;
- printf("%p\n",p);
- printf("%p\n",*p);
- for (i = 0; i < 5; i++)
- {
- for (j = 0; (*p)[i][j] != '\0'; j++)
- {
- printf("%c ", (*p)[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
复制代码
小甲鱼代买中 这里第六行中 定义的指针是什么意思 为什么这么定义?
是指这个数组指针的指针吗
指针p存放的是谁的地址
p和*p存放的地址为什么是相同的??
*array[5] 定义的是一个一维指针数组,*array 表示 array 是一个指针;[5] 表示指针指向的对象的类型是具有五个元素的数组,每个元素都是指针,分别指向5个字符串
p 是指向 array[0][0] 的指针, *p = *p + 0 = *p[0] = array[0],array[0] 与 array[0][0] 是等价的,于是,p 与 *p 也是等价的,都是指向 array[0][0] 的
|
|