1.数组指针:指向数组的指针
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int (*p)[10]=&arr;
2.二维数组的传参:
void print(int(*arr)[5],int r,int c)
{
int i=0;
for(i = 0; i < r; i++)
{
int j = 0;
for(j = 0; j < c; j++)
{
printf("%d ",*(*(arr + i)+j));
}
printf("\n");
}
二维数组的数组名也是数组首元素的地址(首元素就是第一行)
3.函数指针
int (*pf)(int,int)=&Add;
int Add(int x, int y)
{
return x + y;
}
int main()
{
int (*pf)(int, int)=Add;
int d= (*pf)(3, 4);
printf("%d",d);
return 0;
}
(*( void (*)() ) 0)()
typedef void(*pf_t)(int);//pf_t 就是 void(*)(int)
4.函数指针数组
int (*pfarr[4])(int, int)={Add, Sub, Mul, Div};(计算器的实现/转移表)