
咋写的呀能解释一下嘛,有的搞不懂,指针没学明白,顺便有没有推荐的网课啥的
这是指针数组和数组指针的一个知识点,你可以去百度理解这个知识点。
除此之外,数组的初始化你也了解一下,如果在声明时不指定数组大小,应该怎么做?
你可以试着把二级数组转换成一级数组,用int * a[3];去测试一下指针数组,和数组指针的逻辑。
我在调测你的代码的时候,也发现有点问题,然后下面是我调试过程:
int main()
{
//数组指针和指针数组你了解一下,然后可以通过简单实例去理解
const char* a[] = { "Pascal", "C language", "dBase", "Coble" }; //字符串数组 a是字符串数组的首地址(指针) 可以理解为是二级数组的起始地址
const char** p; //这里表示的是想存储一个指针类型的变量 要定义存储指针的数组,需要依次进行大小定义以及初始赋值的
p = a + 3; //这里指针的+1,是按照a的类型进行+1的,比如换成int类型你试试,就是加int大小的地址位,,,
for (int j = 3; j >= 0; j--)
{
printf("%s \n", *(p--)); //这里是使用指针的方式 打印了数组中的值
}
return 0;
//输出Coble\n dBase \n C language\n Pascal\n
}