|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
数组指针*(*p)[5] =&array。&array不是整个数组的位置吗?*p + 1时不应该会指向array数组后一个位置吗?
- array array[0] array[1] array[2] array[3] array[4]
- 本身地址0018FF34 0018FF34, 0018FF38, 0018FF3C, 0018FF40, 0018FF44
- 存放地址array[5] = {00422044, 0042203C, 00422034, 0042202C, 00422020}; // 存放的是地址
- char *array[5] = {"FishC", "Five", "Star", "Good", "WoW"};
复制代码
*p 数组地址 array = 0018FF34
*p+0 第一个指针地址 = 0018FF34
*(*p+0) 获取地址0018FF34放存的值(地址)=00422044
*(*(*p+0)) 获取00422044地址处的值,%c 可输出 "FishC" 中的 F, *(*(*p+0)+1) == 'i'
|
|