[C]指针数组和数组指针
数组相关知识点:
- 定义数组时必须明确指定数组元素的个数,不能使用变量指定数组元素的个数,只能使用常量或常量表达式
- 数组名实际上就是指向数组第一个元素的指针
指针数组:是指所有元素都是指针的数组, 即“存储指针的数组”,如 int *p[10]
数组指针:是指指向一个数组的指针,即“指向数组的指针”,如 int (*p)[10]
使用示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{
char array[5] = {'a', 'b', 'c', 'd', 'e'};
//定义一个指针数组
char *point_array[5];
//定义一个数组指针,使用数组array的首地址初始化
char (*array_point)[5] = &array;
int i;
for(i = 0; i < 5; i++) {
//使用数组a的第i个元素的地址给指针数组第i个元素赋值
point_array[i] = &array[i];
//输出原数组的第i个元素的值
printf("a[%d] = %c\n", i, array[i]);
//输出指针数组第i个元素的值
printf("*point_array[%d] = %c\n", i, *point_array[i]);
//输出数组指针所指向数组的第i个元素的值
printf("*array_point[%d] = %c\n\n", i, (*array_point)[i]);
}
return 0;
}
|

最新评论