C语言基础12

今天是学习嵌入式相关内容的第十三天,以下是今日所学内容

C语言基础12_第1张图片

1.const指针
    const 关键字   常量(只读)   readonly  
2.void

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

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

C语言基础12_第2张图片

C语言基础12_第3张图片

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

指针函数,mystrcpy

C语言基础12_第4张图片

C语言基础12_第5张图片

    2.函数指针:

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

函数指针,由小到大排序

C语言基础12_第6张图片


4.C语言中二级指针使用场景:
    1.指针数组传参时:
        char *str[5];

        int Fun(char **ppstr, int len);

    2.函数体内想修改函数体外指针变量值的时候,要传递指针变量的地址即二级指针
        char *p = NULL;

        int Fun(char **pp);

C语言基础12_第7张图片



构造数据类型:
    数据类型:
        1.基本数据类型:
            int 
            double 
            char 

        2.构造数据类型:
            1.struct 结构体
            2.union 共用体
            3.enum  枚举

1.结构体:
    1.结构体类型的定义
        struct 结构体名 
        {
            数据类型1 成员变量1;
            数据类型2 成员变量2;
            数据类型3 成员变量3;
            ..
        };

    2.结构体变量的定义
        数据类型 变量名;
        数据类型 *指针变量名;

C语言基础12_第8张图片

    3.结构体变量的初始化:
        1.全部初始化:
            struct student s = {"zhangsan", 'm', 19, 100};

        2.局部初始化:
            struct student stu = {
                .name = "lisi",
                .score = 90,
            };  

C语言基础12_第9张图片

C语言基础12_第10张图片

    4.结构体成员变量的访问:
        .   :结构体变量类型访问成员变量使用 .
        ->  :结构体指针类型访问成员变量使用 -> 

        整体类型由成员变量类型决定

结构体输入与输出

C语言基础12_第11张图片

C语言基础12_第12张图片

你可能感兴趣的:(c语言,算法,开发语言)