C语言中的指针数组、数组指针、指针函数和函数指针详解
指针数组和数组指针:
指针数组是一个数组,其元素都是指针类型。例如,int *arr[5] 表示一个包含 5 个指向 int 类型指针的数组。
数组指针是一个指针,它指向一个数组。例如,int (*ptr)[5] 表示一个指向包含 5 个 int 类型元素的数组的指针。
指针函数和函数指针:
指针函数是一个返回指针的函数。例如,int *func() 是一个返回指向 int 类型的指针的函数。
函数指针是一个指向函数的指针。例如,int (*ptr)() 表示一个指向返回 int 类型函数的指针。
举个例子:
- 指针数组的例子:
#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
- 数组指针的例子:
#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
- 指针函数的例子:
#include <stdio.h>
int* func() {
static int num = 10;
return #
}
int main() {
int *ptr = func();
printf('%d
', *ptr);
return 0;
}
输出结果:
10
- 函数指针的例子:
#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
原文地址: https://www.cveoy.top/t/topic/qvgO 著作权归作者所有。请勿转载和采集!