C语言用指针表示法传递一维数组

  • Post category:C

在C语言中,用指针表示法传递一维数组可以实现对一维数组的访问和操作,使用方法如下:

声明和定义一维数组

首先需要声明和定义一维数组,例如:

int arr[5] = {1, 2, 3, 4, 5};

传递数组指针

使用指针数组表示法时需要将数组名作为参数传递给函数,这里传递的是数组名的地址,即数组指针。

void func(int *arr_p, int len) {
    for (int i = 0; i < len; i++) {
        printf("%d ", *(arr_p + i)); // 输出数组元素
    }
    printf("\n");
}

这里通过使用指针数组表示法:

int *arr_p = arr;
func(arr_p, 5);

来调用函数,输出结果为:

1 2 3 4 5

示例一

以下代码展示了使用指针数组表示法遍历数组各元素并求和的过程:

#include <stdio.h>

int sum(int *arr_p, int len) {
    int s = 0;
    for (int i = 0; i < len; i++) {
        s += *(arr_p + i);
    }
    return s;
}

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    int *arr_p = arr;
    printf("sum: %d\n", sum(arr_p, 5));
    return 0;
}

此时控制台会输出:sum: 15

示例二

以下代码展示了对使用指针数组表示法传递的一维数组进行修改的过程:

#include <stdio.h>

void change(int *arr_p, int len) {
    for (int i = 0; i < len; i++) {
        *(arr_p + i) += 1;
    }
}

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    int *arr_p = arr;
    change(arr_p, 5);
    for (int i = 0; i < 5; i++) {
        printf("%d ", *(arr_p + i));
    }
    printf("\n");
    return 0;
}

此时控制台会输出:2 3 4 5 6

通过这两个示例,我们可以了解到如何使用指针数组表示法来传递一维数组,并运用指针的操作方式对其进行访问和修改。同时,我们也了解到,一定要注意传递的数组指针和数组长度,以避免出现错误。