首页 > 编程笔记 > C语言笔记 阅读:14

C语言指针数组和数组指针的区别(附带实例)

在 C 语言中,指针数组是一个数组,其元素都是指针。换句话说,指针数组是存储指针的数组。

例如,一个整型指针数组可以表示如下:
int *ptr_arr[5]; // 一个包含5个整型指针的数组
在这个例子中,ptr_arr 是一个数组,该数组包含 5 个整型指针,每个元素都可以存储一个整型变量的地址。

下面是指针数组的应用实例:
#include <stdio.h>
int main() {
    // 定义三个整型数组
    int arr1[] = {1, 2, 3};
    int arr2[] = {4, 5, 6};
    int arr3[] = {7, 8, 9};

    // 定义一个指针数组,存储整型数组的地址
    int *pArr[3] = {arr1, arr2, arr3};

    // 计算每个整型数组的元素之和
    for (int i = 0; i < 3; i++) {
        int sum = 0;
        for (int j = 0; j < 3; j++) {
            sum += pArr[i][j];
        }
        printf("arr%d 的和: %d\n", i + 1, sum);
    }

    return 0;
}
运行结果为:

arr1 的和: 6
arr2 的和: 15
arr3 的和: 24


C语言中,指向一个数组的指针简称为数组指针。数组指针是一个指针,它指向一个数组。换句话说,数组指针是指向数组的指针。

例如:
int (*pB)[10];
这里的 pB 就是一个数组指针。

总结,指针数组是一个数组,其元素为指针;数组指针是一个指针,它指向数组。

下面我们来看一个使用整数来区分指针数组和数组指针的示例:
#include <stdio.h>
int main() {
    int num1 = 1, num2 = 2, num3 = 3, num4 = 4, num5 = 5;
    // 指针数组
    int *ptr_array[] = {&num1, &num2, &num3, &num4, &num5};
    // 二维整数数组
    int int_array[][3] = {
        {10, 11, 12},
        {20, 21, 22},
        {30, 31, 32},
    };
    // 数组指针
    int (*array_ptr)[3] = int_array;
    return 0;
}
在这个示例中,我们创建了一个整数指针数组 ptr_array 和一个数组指针 array_ptr:

相关文章