(C语言)数组指针,指针数组及函数指针的定义

数组指针

  • 数组指针是指向数组的指针。换句话说,它是一个指针,指向数组的首地址。
  • 声明数组指针时,需要指定指针所指向的数组的类型。

要定义一个数组指针,需要首先确定数组的类型,然后声明一个指向该类型数组的指针。这里是一个简单的示例:

假设有一个包含5个整数的数组:

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

现在,想要定义一个指向这个数组的指针,可以这样做:

int (*ptr)[5]; // 定义一个指向包含5个整数的数组的指针

这里 (*ptr) 表示这是一个指针,[5] 表示指针所指向的是包含5个整数的数组。然后,可以将数组的地址赋给这个指针:

ptr = &arr; // 将数组的地址赋给指针

现在 ptr 指向了数组 arr 的首地址

我们这就定义了一个简单的数组指针

指针数组

  • 指针数组是一个数组,其元素都是指针。
  • 声明指针数组时,需要指定数组的类型和指针的个数

接下来我们第一个指针数组

声明一个包含三个整形指针的指针数组 

int num1 = 10, num2 = 20, num3 = 30;
    int *ptrArray[3];

将整数指针指向对应的整数变量地址

    ptrArray[0] = &num1;
    ptrArray[1] = &num2;
    ptrArray[2] = &num3;

访问指针数组中的元素,并输出对应整数的值

    printf("num1 = %d\n", *ptrArray[0]);
    printf("num2 = %d\n", *ptrArray[1]);
    printf("num3 = %d\n", *ptrArray[2]);

这个示例中,ptrArray 是一个包含3个整数指针的指针数组。通过将这些指针分别指向 num1num2 和 num3 的地址,我们可以通过 ptrArray 访问和操作这些整数变量

函数指针

  • 函数指针是指向函数的指针,它存储了函数的地址。
  • 声明函数指针时,需要指定函数的返回类型和参数列表。
  • 可以使用函数指针来间接调用函数,这在编写回调函数等场景中很有用。

进行一个简单的函数指针定义:

定义一个函数,该函数接受两个整数参数并返回它们的和

int add(int a,int b){
    return a+b;
}

 声明一个指向具有两个整数参数和整数返回类型的函数的指针

int (*ptrFunc)(int, int);

将函数指针指向 add 函数

 ptrFunc = add;

 使用函数指针调用 add 函数,并输出结果

    int result = ptrFunc(3, 5);
    printf("Result: %d\n", result);

ptrFunc 是一个指向具有两个整数参数和整数返回类型的函数的指针。然后,我们将它指向了 add 函数。通过函数指针 ptrFunc 调用 add 函数,得到了结果并输出。

总结

  • 指针数组用于存储指针,便于管理多个指针。
  • 函数指针用于指向函数,可以动态地调用不同的函数。
  • 数组指针用于指向数组,使得可以通过指针访问数组的元素。
  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值