学ios需要了解的C语言基础知识-8-结构体、枚举、typedef啥的

结构体、枚举、typedef啥的
1、全局变量:定义在函数外部变量
     1、定义格式:变量类型 变量名称 = 值
     2、声明     变量类型 变量名称
     注意点:
     1、全局变量不可以重复定义,可以重复声明
     作用域:从定义那一行开始直到文件结束,若有声明的话只要是提前声明在整个项目中任意位置都可以使用
     生命周期:从程序启动到程序退出
     存储位置:全局区
  2、结构体:用来存放多个不同数据类型的数据,若相同数据类型可以表示特定含义也可以使用结构体
     特点:先定义结构体类型然后定义结构变量
     如何定义一个结构体类型
     格式: struct 结构体类型名称{
              成员类型 成员名称;
              ....
           };
//   定义类型的时候,一般首字母都要大写
     struct Person{
            int age;
        char* name;
     };
     初始化:
          1、先定义结构体变量然后初始化
             struct Person p;
             1、一个一个的成员进行初始化
             p.age = 10;
             p.name = "hlw";
             2、整体初始化,需要类型强转
             p = (struct Person){10,"hlw"};
           2、定义结构体变量的同时进行初始化
             1、按照结构体定义时成员的顺序进行初始化
            struct Person p = {10,"hlw"};
             2、定义结构体的同时为指定的成员进行初始化
             struct Person p = {.name = "hlw"};
     结构体多种定义方式
     1、先定义结构体类型然后定义结构体变量
     2、定义结构体类型的同时定义结构体变量
        struct Person{
          int age;
        } p,p1={10};
      3、定义匿名的结构体类型的同时定义结构体变量
         struct {
            int age;
         } p;
         1、结构体类型不可以重复使用
     结构体类型的作用域
     1、定义在函数内部它与局部变量相同
     2、定义在函数外部它与全局变量类似
        1、全局变量可以声明,结构体不可以声明
        2、全局变量是整个项目有效,结构体定义仅在本文件有效
    结构体数组:存储结构体的数组
    结构体指针:指针向结构体的指针
    struct Person* pp = &p;
    pp->age = 10;
    结构体与函数
    1、结构体变量作为函数参数传递是值传递(成员拷贝)
    2、结构体指针作为函数参数传递是地址传递
    
   枚举:当一个变量只有几个固定的取值的时候,使用枚举
   作用:提高代码的可读性,方便程序员之间的交流
   特点:先定义枚举类型,然后定义枚举变量
   定义枚举类型的格式:
    enum 枚举类型名称{
         成员,
         ...
    };
    当定义枚举类型的时候,同时定义了多个常量,成员名称就是常量名称
    枚举的本质是整形
    枚举成员的值默认从0开始,依次递增1,我们可以为某个成员指定数值,那么从它以后所有成员都是在它的基础上递增1;
   
    typedef : 给数据类型起别名
    格式: typedef 原类型名称 新类型名称(外号)
    1、基本数据类型
    2、指针起别名
    3、结构体类型(最多)
    4、枚举类型(最多)
    5、函数指针
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值