指针数组 其本质是一个数组,但是它的元素存放指针
char * a[3] 申请一片空间里面放了三个char *类型的 元素
数组指针 其本质是一个指针用于指向一个数组
char (*p) 指向一个一维数组
char (*p)[2] 指向一个[ ][2]类型的二维数组
用数组指针指向一个指针数组
定义一个指针数组 char *a[3]={"hello","is","me"};
定义一个数组指针 char *(*p) ;
p=a; p就指向了a这指针数组
数组作为形参
一维数组
int a[2] 数组类型 int [2] 申请一片空间里面放了两个 int类型的 元素
fun(a) a的类型 int *
二维数组
int a[2][3] 数组类型 int[2][3] 申请一片空间里面放了两个 int[3] 类型的 元素
每个int [3] 内含有3个int类型的元素
因此int[2][3] 一共可以存放6个int类型的元素
fun(a) a的类型 int (*)[3]
fun(int (*p)[3])
fun(int p[2][3])
fun (int [][3])
多维数组
int a[2][3][4]; 数组类型 int [2][3][4]
fun(a); a的类型int (*)[3][4]
fun(int (*p)[3][4])
fun(int p[][3][4])
fun(int p[2][3][4])
数组作为返回值
一维数组:
int * fun(void)
{
int arr[];
return arr;
}
二维数组:
int (*fun(void))[3]
{
int arr[2][3];
return arr;
}
文章详细阐述了指针数组和数组指针在C语言中的概念,包括如何定义和使用。指针数组是一个数组,其元素是指针;数组指针则是一个指针,它指向一个数组。文中还讨论了如何将数组作为函数参数传递,以及不同维度数组的类型表示。对于数组作为返回值的情况,文章给出了示例,特别是一维和二维数组的处理方式。

被折叠的 条评论
为什么被折叠?



