嵌入式工程师day13(指针函数与函数指针)

前言

 

                                            指针赋值概念理解,指针指向内容赋值

1.const指针


    const 关键字   常量(只读)   readonly 

    1.const int *p;
    2.int const *p;
    3.int *const p;
    4.const int *const p;
    5.int const *const p;

    1和2是等价的
    const修饰 *p,指针变量p的值可以改变,但不能利用指针修改指向空间中的值

    3
    const修饰 p,指针变量p的值不能改变,但可以利用指针变量p修改指向空间中的值
    一定要对指针初始化

    4和5是等价的
    const修饰p和*p,指针变量p的值不能改变,也不能利用*p改变直系那个空间中的值
    一定要初始化 

2.void


    void a;

    高精度
    int *p;
    double *p;
    char *p;

    低精度
    void *p;
    p保存内存地址

    int *、double *、char * 转换为 void * 需要强制类型转换
    void *转换为int *、double *、char *不需要强制类型转换

    strcpy 拷贝字符串
    memcpy 拷贝一段内存空间



3.函数指针和指针函数:


    指针函数:是函数,函数的返回值类型是指针类型
    函数指针:是指针,指针指向了函数



    1.指针函数:


        局部变量的地址不能返回,因为局部变量会随函数作用域结束被回收,虽然能够获得返回的地址,但地址对应的空间已经被回收过了

        将函数的返回值作为下一个函数的参数



    2.函数指针:



        int (*Fun)(int a, int b) = NULL;
        定义函数指针变量Fun,占8个字节空间,指向int返回值有2个int参数的函数

 

                                综合函数调用,只改变取用函数来实现从小到大排序 

                                             改为descompare来实现由大到小排序 

        头文件取用<stdlib.h>取用abs(Num)(求当前数的绝对值)来进行由小到大排序

                                                                       由大到小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值