Linux C语言学习第十三天

1.二级指针:
    1.函数体内修改函数体外指针变量的值
    2.指针数组的数组名是指向数组第一个元素的指针即二级指针

    C语言中:
    指针数组传参二级指针和长度 
    二维数组传参数组指针和长度

    char str[5][32];
    int fun(char (*p)[32], int len);

    char *pstr[5];
    int fun(char **ppstr, int len);

2.函数指针和指针函数:
    指针函数是函数,函数的返回值是指针 
    int *fun(int x, int y);

    函数指针是指针,指针指向一个函数 
    int (*p)(int, int);

3.指针函数:
    返回值为指针的函数
    注意:
        1.指针函数不能返回局部变量的地址

局部变量作用域的限制在运行完函数后空间被回收。

4.void *指针 
    void 缺省类型 
    void *只表示类型地址,没有指向空间大小的含义
    主要用户函数传参和返回值使用

    void a;                 //错
    void *p = 0x2000;       //对 
    
    char *p = 0x2000;
    double *p = 0x2000;
    int *p = 0x2000;

    注意:   
        1.char *、int *、double * 转换为void *时需要强制类型转换
        2.void *转换为char *、int *、double *时不需要强制类型转换

5.函数指针: 
    函数指针是指针,占8个字节空间,指向函数 

构造数据类型:
1.数据类型

    1.基本数据类型: short int long float double 
    2.构造数据类型: 结构体、共用体(联合体)、枚举 

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

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

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

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

        结构体访问成员变量最终的类型由成员变量的类型决定

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值