指针:(point)
定义的格式 类型说明符 *变量名;
指针本身是一个变量,我们叫指针变量 p
指针变量的值一定是另一个变量的地址,当我们将某一个变量的地址,作为值赋给指针变量时,
我们就说该指针指向该变量,如
int a = 100;
int *p = &a;
那么此时我们说指针变量p指向整形变量a;
指针的类型:
指针的类型值指的是它所指向的变量的类型.
指针的作用:
可以访问操作内存;
指针定义以后必须初始化,赋值为NULL;
在C语言中,使用指针时,必须确保指针指向的是一块确定的内存区域,
确定理解地址确定,内存区域大小确定.
函数指针:
返回值类型 函数名 (形参列表)
{
函数体;
return 返回值;
}
如果没有返回值 则返回值类型是void
返回值类型 函数名 (形参列表);
int f(int n1,float n2)
{
return n1;
}
函数指针: 指向函数的指针变量;
int (*p)(int n1,float n2);
指针数组: 元素都是指针的数组;
定义格式: int a = 3; int a[10]; int *a[10];
int p; //整形变量
int *p; //指向整形变量的指针变量(指针)
int p[]; //整形数组
int *p[5]; //指向整形变量的指针的数组(指针数组)
int (*p)[5]; //指向每一行有5列的数组的指针(数组指针)
int p(){}; //返回值为整形的函数
int (*p)(); //指向上面↑这种类型函数的指针(函数指针)
int (*p[4])(); //存放↑这种类型指针的数组(函数指针数组)
int (*)[5] p(){}; //返回71行类型的指针数组的函数(数组指针函数)
int* p(){}; //返回值为指针类型的函数(指针函数)
int* (*p)(); //指向76行这种类型的函数的指针(指针函数指针)
int* (*p[5])(); //装有5个77行这种类型的指针的数组(指针函数指针数组)