2024/02/02

函数指针,数组指针,指针数组的区别并给出一个简单示例

1. 函数指针:

格式:存储类型 数据类型 (*函数指针变量名)(参数列表)

本质上是一个指针,用来指向函数的首地址,多用于回调函数

//函数 add
void Add(void) 

//函数指针p
void (*p)(void) = Add

2. 数组指针 

格式:存储类型 数据类型 (*指针变量名)[常量表达式]

常量表达式表示元素的个数

本质上是一个指针,用来指向二维数组的地址,多用于传参和返回

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

int (*p)[3] = arr;

  1. ()不可以省略,为了突出指针,注: 运算优先级() > [] > *
  2. 常量表达式: 需要和二维数组的列数保持一致

3. 指针数组

格式:存储类型 数据类型 *指针数组变量名[常量表达式]

本质上是一个数组, 数组的元素是类型相同的指针

int a=1, b=2, c=3, d=4;  
int *p1=&a;
int *p2=&b;
int *p3=&c;
int *p4=&d;

int *p[4]={&a, &b, &c, &d};


你可能感兴趣的:(c语言)