c语言s1e23指针数组和数组指针问题求助
#include <stdio.h>int main()
{
char *array = {"FishC", "Five", "Star", "Good", "WoW"};
char *(*p) = &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) =&array。&array不是整个数组的位置吗?*p + 1时不应该会指向array数组后一个位置吗?
array arrayarrayarrayarrayarray
本身地址0018FF34 0018FF34, 0018FF38, 0018FF3C, 0018FF40, 0018FF44
存放地址array = {00422044, 0042203C, 00422034, 0042202C, 00422020}; // 存放的是地址
char *array = {"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' {:10_327:}{:10_291:} ba21 发表于 2022-7-13 22:03
*p 数组地址 array = 0018FF34
*p+0 第一个指针地址 = 0018FF34
*(*p+0) 获取地址0018FF34放存的 ...
明白了,谢谢 ba21 发表于 2022-7-13 22:03
*p 数组地址 array = 0018FF34
*p+0 第一个指针地址 = 0018FF34
*(*p+0) 获取地址0018FF34放存的 ...
学习了。这解释清晰明了。谢谢
ba21 发表于 2022-7-13 22:03
*p 数组地址 array = 0018FF34
*p+0 第一个指针地址 = 0018FF34
*(*p+0) 获取地址0018FF34放存的 ...
p是数组地址吧,*p不是等价于*p+0吗
页:
[1]