C语言 将指针传递给函数

  • Post category:C

当我们想要在C语言中将一个变量的地址传递给函数时,我们需要使用指针。指针变量来存储目标变量的地址,函数在使用该变量时需要对指针进行解引用操作。下面是C语言中将指针传递给函数的完整使用攻略。

定义函数的形参为指针类型

我们可以通过在函数中定义一个指针形参,来将目标变量的地址作为参数传递给函数。下面是使用指针传递参数的函数定义方式:

void func(int *ptr){
    *ptr = 100;
}

在这个函数中,我们使用了指针变量 *ptr 来操作变量的值,其中 * 表示指针所指向的变量的值。这个函数将目标变量的值改为了 100。

在函数调用时将变量的地址传递给指针形参

接下来,我们需要调用这个函数并将变量的地址传递给这个函数的指针形参,这样函数就可以操作该变量。下面是使用指针传递参数的函数调用方式:

int main(){
    int num = 0;
    func(&num);
    printf("%d", num); // 输出 100
    return 0;
}

在这个程序中,我们首先定义了变量 num 并将其初始化为 0,然后使用 &num 的方式获取变量 num 的地址,并将其作为参数传递给 func 函数。在 func 函数中,我们通过指针 *ptr 将 num 的值修改为了 100。最后在 main 函数中,我们打印 num 变量的值,得到了修改后的值 100。

使用指针传递数组

除了传递单一变量的地址,我们还可以使用指针来传递数组变量的地址。下面是一个示例程序:

void printArray(int* arr, int size){
    for(int i=0; i<size; i++){
        printf("%d ", *(arr+i));
    }
}

int main(){
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr)/sizeof(arr[0]);
    printArray(arr, size);
    return 0;
}

在这个程序中,我们定义了一个 printArray 函数,该函数的第一个参数是一个指向 int 类型的指针 arr,第二个参数是数组的大小 size。该函数用来打印数组 arr 的每个元素。在 main 函数中,我们首先定义了一个包含 5 个元素的数组 arr,并计算出其大小 size。然后,我们将数组的地址和大小传递给 printArray 函数。在函数内部,我们使用指针 *arr 来操作数组元素,最后打印了数组的所有元素。

总之,使用指针传递参数可以帮助我们在C语言中高效地操作变量和数组,并可以有效地减少程序的内存占用。