C语言

作者: biaoqianwo | 来源:发表于2017-09-19 18:05 被阅读6次

    enum枚举

    http://www.jianshu.com/p/1b4e7dfef9e5
    枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。

    定义

    形式
    enum 枚举名 {枚举元素1,枚举元素2,……};
    举例
    enum Season {spring, summer, autumn, winter};

    struct结构体

    结构体,一种数据类型,像int、char等。
    http://www.jianshu.com/p/11338c411bec

    结构体的定义

    形式:

    struct 结构体名{  
         类型名1 成员名1;
         类型名2 成员名2;
        ……
         类型名n 成员名n;   
     };
    

    举例:

    struct Student{
        char* name;//姓名
        int age;//年龄
        float height;//身高
    };
    

    结构体变量的定义

    1、先定义结构体类型,再定义变量

    struct Student{
        char* name;//姓名
        int age;//年龄
        float height;//身高
    };
    struct Student stu;
    

    默认情况下,我们定义结构体变量需要带个struct关键字。

    2、定义结构体类型的同时定义变量

    struct Student{
        char* name;//姓名
        int age;//年龄
        float height;//身高
    }stu;
    

    3、直接定义结构体类型变量,省略类型名

    struct {
        char* name;//姓名
        int age;//年龄
        float height;//身高
    }stu;
    

    typedef

    typedef是C语言的关键字,作用是为一种数据类型定义一个新名字。

    http://www.jianshu.com/p/740f87e97be1

    介绍

    typedef existing_type new_type_name;
    注意:typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。

    使用typedef给结构体起别名

    struct MyPoint{
        float x;
        float y;
    };
    typedef struct MyPoint SPoint;
    SPoint p;
    p.x=10.0f;
    
    typedef struct MyPoint{//MyPoint可以省略
        float x;
        float y;
    }Point;
    

    typedef 与 define 区别

    宏定义只是简单的字符串代换,是在预处理完成的,而typedef是在编译时处理的,它不是作简单的代换,而是对类型说明符重新命名。被命名的标识符具有类型定义说明的功能。

    #define P1 int*;
    typedef int* P2;
    

    P1 a, b; 在宏代换后变成: int *a, b; 表示 a 是指向整型的指针变量,而 b 是整型变量。
    P2 a, b; 表示a,b都是指向整型的指针变量。因为P2是一个类型说明符。
    http://blog.csdn.net/qq_29350001/article/details/53883571

    相关文章

      网友评论

          本文标题:C语言

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