嵌入式——从入门到精通 第十三天

.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的值可以改变,*p的值不能改变
    3.const 修饰 p,指针变量p 的值不能改,但是可以利用指针变量p修改指向空间中的值
        一定要对指针初始化,不然就用不了
    4和5是等价的
    const修饰p和*p,指针变量p的值不能改变,也不能利用*p改变指向那个空间中的值一定要初始化
2.void 
    void * p 
    p保存的是内存地址,没有指向空间大小的含义(指向的空间大小是缺省的)
    int * ,double* ,char* 转换为void * 需要强制类型转换(高精度转换为低精度)
    viod * 转换为 int*, double * ,char * ,不需要强制类型转换(低精度复制给高精度)
    strcpy 拷贝字符串
    memcpy 拷贝一段内存空间 ,(只传内存地址)
3. 函数指针和指针函数:
    指针函数:是函数,函数的返回值类型是指针类型
    函数指针: 是指针,指针指向了函数

    1.指针函数:
    局部变量的地址不能返回,因为局部变量会随函数作用域结束回收,虽然能够获得返回的地址,但是地址对应的空间已经被回收了
    主要作用:    将函数的返回值作为下一个函数的参数;
    2.函数指针:
        int(*fun)(int a,int b ) = NULL;
        定义函数指针变量fun 
4.c语言中耳机指针使用场景
    1.指针数组传参的时候:
        char *str[5];
        int Fun(char **ppstr,int len);
    2.函数体内向修改函数体外指针变量值的时候,要传递指针变量的地址及二级指针,
        char * p = 
.............................
构造数据类型:
    数据类型:
        1.基本数据表类型:
            int
            double
            char
            void
        2.构造结构类型:
            1.struct 结构体
            2.union 共用体
            3.enum 枚举
1. 结构体:
    1.结构体类型的定义
        struct 结构体名
        {
        数据类型1 成员变量1
        数据类型2 成员变量2
        数据类型3 成员变量3
        };
    
    2.结构体变量的定义
        数据类型 变量名;
        数据类型 *指针变量名;
    3.结构体变量的初始化:
    1.全部初始化
        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值