美文网首页
C语言 共同体 枚举 修饰词知识点

C语言 共同体 枚举 修饰词知识点

作者: 超级皮波9 | 来源:发表于2018-09-09 16:03 被阅读0次

    共同体

    • 共同体格式:
    union 共同体名称{
             数据类型  属性名称;
             数据类型  属性名称;
    };
    union Test {
            char ch;
            int age;
    };
    
    • 特点
      结构体的每个属性都会占用一块单独的内存空间,而共同体所有的属性都共用一块储存空间,只要其中一个属性发生改变,其他属性都会受到影响
    • 应用场景
      同一个变量,在不同的时刻需要表示不同类型数据的时候,就可以用共同体

    枚举

    • 枚举是用于提升代码的阅读性,一般用于表示几个固定的值,所以也叫做枚举常量
    • 枚举的格式
    enum 枚举类型名称{
              取值1,
              取值2,
    };
    
    • 注意点 和结构体,共用体不同,枚举是逗号隔开

    枚举的规范

    • 枚举的取值一般以K开头,后面跟上枚举类型的名称,后面再跟上表达的含义,K代表这是一个常量
    • 枚举的类型名称,主要是为了有多个枚举的时候,方便区分含义,和表达的意思
    • 枚举的取值默认情况下是从0开始取值,一次递增
    • 也可以手动指定从几开始,一次递增
    #include <stdio.h>
    
    int main(){
        //枚举
        enum Gender{
            KGenderMan,
            KGenderWoman,
        };
        
        struct Person{
            enum Gender gender;
        };
        
        struct Person p;
        p.gender = KGenderMan;
        
        return 0;
    }
    
    

    作用域和定义

    1. 作用域和结构体/普通变量一样
    2. 定义和结构体一样

    全局变量和局部变量

    局部变量

    • 概念
      定义在{}中,函数中,形参都是局部变量
    • 作用域
      从定义的那一行开始,直到遇到{}结束或者遇到return为止
    • 储存位置
      局部变量会储存在内存的栈区中,会随着定义变量的代码执行分配储存空间,会随着作用域的结束而自动释放
    • 特点
      1.相同作用域内,不能出现同名的局部变量
      2.不同作用域内有用名的变量,那么在访问时,内部的会覆盖外部(就近原则)

    全局变量

    • 概念
      定义在{}外挥着函数外的变量,都是全局变量
    • 作用域
      从定义的那一行开始,直到文件末尾
    • 储存位置
      全局变量会储存在内存的静态区中,会随着程序的启动分配存储空间,随着程序的结束释放
    • 特点
      如果多个同名的全局变量,系统只会分配一次空间,多个同名的全局变量共用一块储存空间

    修饰符

    auto//register

    • auto和register都是用于修饰局部变量的
      它们年的作用是修饰编程的存储特性
      auto: 特点就是告诉编译器, 局部变量离开作用域自动释放
      默认情况下所有局部变量都是auto的

    static对局部变量的作用

    • 如果利用static修饰局部变量, 那么会将局部变量的存储区域从栈区移动到静态区
    • 静态区只有程序结束才会释放

    extern 修饰词

    • extern用于声明一个变量,声明的变量并不会开辟储存空间
    • extern 一般用于全局变量
    • 原因
      局部变量,只有执行到那一行代码才会分配储存空间,所以声明了但是在使用的时候还是没有分配,所以局部变量不能使用extern
      全局变量,会随着程序的启动分配储存空间,所以只要声明了,使用时已经分配好了储存空间,所以全局变量能使用extern

    static对全局变量的作用

    • 定义一个内部的全局变量,
    • 1.该变量只能在定义的文件中使用, 不能在其它文件中使用,
    • 2.并且该变量会独占一块内存空间

    extern和static对函数的作用

    1. 如果利用extern修饰函数, 代表这是一个外部函数, 其它文件中也可以使用
    • 注意点: 默认情况下所有函数都是外部函数, 所有的函数都可以在其它文件中访问, 所以extern是一个废物
    1. 如果利用static修饰函数, 代表这事一个内部函数, 只能在当前文件中使用
    • 如果一些内部函数不想提供给外界使用, 那么就可以给函数添加一个static

    相关文章

      网友评论

          本文标题:C语言 共同体 枚举 修饰词知识点

          本文链接:https://www.haomeiwen.com/subject/hqtdgftx.html