#include <stdio.h>
int Add(int x, int y) {
return x + y;
}
int main() {
int a = 10;
char ch = 'W';
int arr1[2] = { 0 };
int arr2[2] = { 0 };
int arr3[2] = { 0 };
//整形指针
int* pa = &a;
//字符指针
char* pch = &ch;
//数组指针
int (*parr1)[2] = &arr1;
//指针数组
int* parr2[3] = { arr1, arr2, arr3 };
//函数指针
int (*pfunc1)(int, int) = Add;
//函数指针数组
int (*pfunc2[3])(int, int) = { Add, Add, Add };
//指向函数指针数组地址的指针
//&pfunc2 本质是一个地址,是函数指针数组的地址,所以应该加[3]
int (*(*pfunc3)[3])(int, int) = &pfunc2;
//pfunc2 本质是一个数组,但数组名又代表首元素的地址,即函数指针数组的首元素的地址,既然是首元素的地址,所以如下不应该加 [3]
int (*(*pfunc4))(int, int) = pfunc2;
return 0;
}
C指针相关概念
最新推荐文章于 2024-06-27 16:51:33 发布