#include <stdio.h>
#include <string.h>
int main()
{
// char p[] = "aaabbb\cddd"; // 10个字节
// printf("%ld\n",strlen(p));
#if 0
char *str[4] = {"aaaaa", "bbbbb", "ccccc", "ddddd"}; // 指针数组,存放的是指针变量
printf("%s\n", *str); // aaaaa
printf("%s\n", *(str+1)); // bbbbb
printf("%s\n", *(str+2)); // ccccc
printf("%s\n", *(str+3)); // ddddd
#endif
// int (*ptr)[4] = {{1,2}, {3,4}, {5,6}, {7,8},{9,10}}; // 数组指针,一以数组为单位的指针(指向数组的指针)
int ptr[][4] = {{1,2}, {3,4}, {5,6}, {7,8},{9,10}}; // 数组指针,一以数组为单位的指针(指向数组的指针)
printf("%d\n", ptr[1][1]);
return 0;
}
1、ptr是数组名,指向的是该数组的首地址。
2、str是一个二维数组的数组名,指向的是二维数组的首地址,也可以认为是一个指向一维数组的一个指针。
3、数组名是一个指针常量,不可以被更改,形参作为数组名的时候,编译器会自动转换成相应的指针类型。