1.指针数组:
int *a[5];
char *str[5];
指针数组主要用来操作字符串数组,通过将指针数组的每个元素存放字符串的首地址实现对多个字符串的操作
二维数组主要用来存储字符串数组,通过每行存储一个字符串,多行存储多个字符串所组成的数组
2.指针和二维数组的关系:
int a[2][3] = {0};
int *p = NULL;
int (*q)[3] = NULL;
p = &a[0][0];
p = a[0];
p = *a;
q = a;
二维数组的数组名是指向数组第一行元素的数组指针
访问二维数组第m行第n的方式:
a[m][n]
*(a[m]+n)
*(*(a+m)+n)
*(p+m*N+n)
*(*(q+m)+n)
*(q[m]+n)
q[m][n]
二维数组传参:
int a[2][3] = {0};
int Fun(int (*parray)[3], int len);
char str[5][32] = {0};
int Fun(char (*pstr)[32], int len);
3.二级指针:
1.指针数组传参时
int *a[5] = {NULL};
a: int **
char *pstr[5] = {"hello", "world", "how", "are", "you"};
int Fun(char **ppstr, int len);
嵌入式下C语言学习(第十二天)
最新推荐文章于 2024-09-12 08:54:42 发布