指针数组和数组指针:

指针数组是一个数组,其元素都是指针类型。例如,int *arr[5] 表示一个包含 5 个指向 int 类型指针的数组。

数组指针是一个指针,它指向一个数组。例如,int (*ptr)[5] 表示一个指向包含 5 个 int 类型元素的数组的指针。

指针函数和函数指针:

指针函数是一个返回指针的函数。例如,int *func() 是一个返回指向 int 类型的指针的函数。

函数指针是一个指向函数的指针。例如,int (*ptr)() 表示一个指向返回 int 类型函数的指针。

举个例子:

  1. 指针数组的例子:
#include <stdio.h>

int main() {
   int num1 = 10, num2 = 20, num3 = 30;
   int *arr[3] = { &num1, &num2, &num3 };

   for(int i = 0; i < 3; i++) {
      printf('%d
', *arr[i]);
   }
   
   return 0;
}

输出结果:

10
20
30
  1. 数组指针的例子:
#include <stdio.h>

int main() {
   int nums[5] = {1, 2, 3, 4, 5};
   int (*ptr)[5] = &nums;

   for(int i = 0; i < 5; i++) {
      printf('%d
', (*ptr)[i]);
   }
   
   return 0;
}

输出结果:

1
2
3
4
5
  1. 指针函数的例子:
#include <stdio.h>

int* func() {
   static int num = 10;
   return &num;
}

int main() {
   int *ptr = func();
   printf('%d
', *ptr);
   
   return 0;
}

输出结果:

10
  1. 函数指针的例子:
#include <stdio.h>

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

int main() {
   int (*ptr)(int, int) = add;
   int result = ptr(5, 10);
   printf('%d
', result);
   
   return 0;
}

输出结果:

15
C语言中的指针数组、数组指针、指针函数和函数指针详解

原文地址: https://www.cveoy.top/t/topic/qvgO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录