目录
指针的指针
保存指针变量的地址 一般用在指针数组作为函数参数(int *p[] int *p[5] int **p)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
指针函数
函数类型为指针类型 例:int *max(); 函数类型为int *
函数的指针
函数名就是地址,函数指针保存函数的地址
写法:复制函数首部在函数名前加*,并把*和函数名括起来,最后把函数名改成所需的名字。
eg:int (*q)(int a,int b)
函数指针数组
eg:int (*q[3])(int a,int b)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
函数参数为函数指针的函数
eg:int fun(int (*p)(int,int),int a,int b)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
无类型指针
void *p:可以将其他类型的指针赋值给无类型指针,但是不能将无类型指针赋值给其他类型指针。
malloc()函数
由程序员分配,在堆区开辟内存空间,可以实现动态分配内存。
参数:
malloc(开辟空间大小)
返回值:void * 开辟成功返回开辟的空间首地址,否则返回NULL。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
开辟后的内存是未初始化的 因此可以用到如下函数进行初始化 头文件:<stdlib.h>
memset(需初始化的内存,’\0’,初始化内存大小); 可以用来字符数组的清空。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
free()函数
用于释放堆区的内存
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
const限定符
声明变量要初始化,且不能修改 const右侧是什么,什么就不能变
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Finish