云计算百科
云计算领域专业知识百科平台

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

1.指针数组

指针数组,本质是数组,在数组中保存了若干个指针

语法  int*a【5】

  int*:                     数组中保存的数据类型,该数组中保存的是int*指针

【5】             该数组中可以放五个指针,整体占用40个字节

1)指针数组的定义

        int * a【5】

        char* a【5】

2)指针初始化

        char*p=NULL;4

        char*p【5】={NULL}//部分初始化,全部初始化为空null

                2))定义为已有字符串地址

        char*p=“hello”;把h的首地址保存在p中

        char*a【5】={"hello","string",“word”,”are”,“you”};定义了一个数组指针每个指针的都代表对应字符串的首地址

                3))已有的指针进行初始化

        char*p【3】={p1,p2,p2};

                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 ,int);

char *(pfun)(char*);

函数指针:
int (*pfun)(int , int );
定义了一个函数指针变量,该指针变量在内存占8字节,该函数指针可以指向一个具有int返回值,两个int类
型的参数的函数。
char *(*pfun)(char *);
总结:
返回值类型 (*指针名称)(形参表);

        2)函数指针初始化

int (*pfun)(int ,int)=null;

3)函数指针赋值

int add(int num1,int num2);

int (*pfun)(int int)=null

pfun=add;

4)函数指针调用函数

函数名(实参表);

函数指针名称;

5)函数指针的运用

        回调函数

        将函数作为某个函数的采数传递,传递的函数成为回调函数

        主要为了降低代码耦合度

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【C语言】指针函数 函数指针 指针数组 数组指针 秒通
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!