不知道怎么理解这一段代码的意思,最终运行的过程是什么来的
int main()
{
char* a [ ] = {"abc","def","ghi"};
char**pa=a;
pa++;
printf("%s\n", *pa);
return 0;
}
不知道怎么理解这一段代码的意思,最终运行的过程是什么来的
int main()
{
char* a [ ] = {"abc","def","ghi"};
char**pa=a;
pa++;
printf("%s\n", *pa);
return 0;
}
供参考:
#include <stdio.h>
int main()
{
char* a[] = {"abc","def","ghi"};// 定义了一个指针数组 a[3], 这个数组有三个元素a[0] a[1] a[2],
// 三个元素都是字符串指针,a[0] = "abc" ,a[1] = "def" , a[2] = "ghi"
char**pa=a; // (char*) *pa = (char*)a; 数组名就是指针 *pa = a
pa++; // pa 是数组a[3] 首地址 &a[0],pa++ ==> &a[1]
printf("%s\n", *pa); // *pa = a[1] = "def", 所以输出:def
return 0;
}