【C语言】指针函数 函数指针 指针数组 数组指针 秒通

📅 2026/8/6 21:52:32
【C语言】指针函数 函数指针 指针数组 数组指针 秒通
1.指针数组指针数组本质是数组在数组中保存了若干个指针语法 int*a【5】int*数组中保存的数据类型该数组中保存的是int*指针【5】 该数组中可以放五个指针整体占用40个字节1指针数组的定义int * a【5】char* a【5】2指针初始化char*pNULL4char*p【5】{NULL}//部分初始化全部初始化为空null2定义为已有字符串地址char*p“hello”把h的首地址保存在p中char*a【5】{hello,string“word””are”“you”}定义了一个数组指针每个指针的都代表对应字符串的首地址3已有的指针进行初始化char*p【3】{p1p2p2}4指针数组和二维字符型数组区别二维int str[3][100];int *str【3】指针数组区别 1.二维字符型数组中保存的是多个字符串本身滋镇数组中保存的是多个字符串的首地址2.要保存多个字符串用二维字符型数组要保存多个字符串用指针数组2.二级指针二级指针本事还是指针是一个指针变量的地址int**指针名称--》保存整形指针的指针char** 保存字符型指针的指针C语言中主要有两个二级指针的使用场景1.想要在背调函数中修改主调函数中的指针变量实参需要传递该指针的地址形参用二级指针接受2.指针数组的数组名是一个二级指针实参传递指针数组的数组名黑丝形参用二级指针char *str[3] {hello, world, how};str[0] --- char * ---保存了字符串常量hello的首地址str str[0] char ** 二级指针3.指针函数指针幻术本质是函数指针函数能返回什么值1.局部变量地址不能被返回2.具有静太的储存空间的函数才能被返回1.static 修饰静态地址的变量2.全局变量的地址3.可以返回字符串常量的地址4.可以通过参数传递给该函数的地址5.可以返回堆取申请且没有被释放的地址4.函数指针函数指针本质是指针指向函数的指针函数函数的函数名为函数的入口地址函数指针语法1.定义函数指针1函数值声明int fun int intchar *pfunchar*函数指针int (*pfun)(int , int );定义了一个函数指针变量该指针变量在内存占8字节该函数指针可以指向一个具有int返回值两个int类型的参数的函数。char *(*pfun)(char *);总结返回值类型 (*指针名称)形参表2函数指针初始化int *pfun(int ,int)null;3函数指针赋值int addint num1,int num2;int (*pfun)int intnullpfunadd4函数指针调用函数函数名实参表函数指针名称5)函数指针的运用回调函数将函数作为某个函数的采数传递传递的函数成为回调函数主要为了降低代码耦合度