在C语言中,指针数组是一个存储指针的数组,每个元素都是一个指针,指向一个特定的数据类型
- 声明指针数组: 要声明一个指针数组,首先需要指定数组的大小,然后使用类型名称和方括号来声明数组。例如,要声明一个整数指针数组,可以这样做:
int *ptr_array[5];
这将创建一个可以存储5个整数指针的数组。
- 初始化指针数组: 初始化指针数组时,可以为数组的每个元素分配内存并赋值。例如:
int num1 = 10, num2 = 20, num3 = 30; int *ptr_array[3] = {&num1, &num2, &num3};
现在,ptr_array
的每个元素都指向一个整数变量。
- 访问指针数组中的元素:
要访问指针数组中的元素,可以使用数组索引和间接寻址运算符
*
。例如:
printf("Value of ptr_array[0]: %d\n", *ptr_array[0]); // 输出:Value of ptr_array[0]: 10
- 指针数组作为函数参数: 指针数组可以作为函数参数传递,以便在函数内部修改原始数组。例如:
#includevoid increment_elements(int *ptr_array[], int size) { for (int i = 0; i < size; i++) { (*ptr_array[i])++; } } int main() { int num1 = 10, num2 = 20, num3 = 30; int *ptr_array[3] = {&num1, &num2, &num3}; printf("Before increment: "); for (int i = 0; i < 3; i++) { printf("%d ", *ptr_array[i]); // 输出:Before increment: 10 20 30 } printf("\n"); increment_elements(ptr_array, 3); printf("After increment: "); for (int i = 0; i < 3; i++) { printf("%d ", *ptr_array[i]); // 输出:After increment: 11 21 31 } printf("\n"); return 0; }
在这个例子中,increment_elements
函数接受一个整数指针数组和数组的大小作为参数,然后遍历数组并递增每个元素。