int main()
{
/* char ch1 = "asdf";*/ //左边char 右边char[5]
char ch1[] = "asdf";
char(* p1)[5] = &ch1; //p1类型char[5]* *p1是char*
char* p2 = "asdf"; //p2类型char* *p2是char
//首字符h地址存放到p2中
printf("%c\n", *(*p1));
printf("%c\n", *p2);
printf("%s\n", p2); //%s需要char*参数
printf("%s\n", *p1); //%s需要char*参数
}
实际上就是为了让自己知道,字符数组指针和字符指针有什么区别,可以看到在访问首元素的时候两者的访问表达方式并不一样。
字符数组指针相当于一个二级指针,所以用了两个*。
而%s和%c的打印也只是为了区分两者在需要参数类型不同的情况下,字符数组指针和字符指针需要随之改变。