是指在函数中修改数组指针的指向,使其指向不同的数组或者指向空。
在C语言中,数组名本身就是一个指针常量,指向数组的首元素。当数组作为参数传递给函数时,实际上是将数组的地址传递给了函数。因此,在函数内部修改数组指针的指向,实际上是修改了指向数组的指针的值。
下面是一个示例代码,演示如何修改指向函数中数组的指针:
#include <stdio.h>
void changeArray(int** arrPtr) {
int newArr[] = {4, 5, 6};
*arrPtr = newArr; // 修改指向函数中数组的指针
}
int main() {
int arr[] = {1, 2, 3};
int* arrPtr = arr; // 数组指针指向数组的首元素
printf("Before change: %d\n", arrPtr[0]); // 输出原始数组的第一个元素
changeArray(&arrPtr); // 将数组指针的地址传递给函数
printf("After change: %d\n", arrPtr[0]); // 输出修改后数组的第一个元素
return 0;
}
在上述代码中,changeArray
函数接受一个int**
类型的参数,即指向指针的指针。在函数内部,我们创建了一个新的数组newArr
,然后通过间接引用修改了传入的数组指针arrPtr
的指向,使其指向新数组newArr
。在main
函数中,我们先输出原始数组的第一个元素,然后调用changeArray
函数修改数组指针的指向,最后输出修改后数组的第一个元素。
需要注意的是,在函数内部创建的局部数组newArr
的生命周期仅限于函数内部,一旦函数执行完毕,该数组将被销毁。因此,在修改指向函数中数组的指针时,需要确保指针指向的数组在函数执行期间是有效的。
推荐的腾讯云相关产品:无
参考链接:无
领取专属 10元无门槛券
手把手带您无忧上云