C语言关于构造类型的简单概括

1,结构体的构造声明如下;

  struct 结构体类型        //结构体类型常常首字母大写;

  {  结构体成员;      //结构体成员的引用格式为: 结构体变量.成员

  }结构体变量;             //如果是结构体数组,变量为数组名[结构体个数]

 

  1.1,结构体的使用:

    1.1.1:声明结构体;

    1.1.2:定义初始化结构体;

    1.1.3:调用或赋值或使用结构体指针引用;

    struct Student                                   //使用struct关键字声明一个Student类型结构体;

    {  char Name[20];                         //字符串结构体成员Name;

       char Sex[20];                             //字符串结构体成员Sex;

       int Age;                                      //整型结构体成员Age;

    } student1={"胡犀牛","男",23};         //定义结构体变量student1,并且初始化;

    struct Student student2={...};             //单独定义结构体变量并且初始化; 

       printf("姓名:%s",student1.Name );   //结构体变量的调用: 结构体变量.成员

    1.1.4:如果结构体的成员还是结构体,则需要继续使用成员运算符引用变量;

    1.1.5:成员运算符的优先级max,结构体成员与普通变量使用方法一样;汉字属于字符串;

    1.1.6:结构体声明可以在主函数内也可以在主函数外,因为声明不是函数定义;

    1.1.7:如果一个结构体成员还是结构体,初始化或者调用的时候是使用结构体内的结构体的成员;要层级调用;

  1.2,结构体数组;

    表示数组中的元素为结构体类型的数组;(兼具结构体和数组的语法特点;)

    声明结构体数组时的变量格式为:数组名[数组个数]

    调用结构体数组时的变量格式为:数组名[数组下标].成员

  1.3,结构体指针;

    表示指向结构体变量起始地址的指针;

    变量定义为:结构体类型  *指针名字;

    访问结构体成员的两种方式为:

    1.3.1:(*指针).成员   //指向指针地址得到结构体变量,等价于  "变量.成员" 的调用;

    1.3.2:  指针=&结构体变量;

        指针->结构体成员;  //定义一个指针,然后把结构体的地址传递给指针,然后使用结构体指向符指向引用成员;

    1.3.3:结构体变量.成员      =    (*结构体指针).成员      =     结构体指针->成员   

    1.3.4:  (1)指针->成员:表示结构体指针指向结构体成员的值;

        (2)指针->成员++:表示指针指向成员的值,使用后值加1;   //没有括号自加运算操作的是成员值;

        (3) ++指针->成员:表示指针指向成员的值,值加1后使用;

        (4)(++指针)->成员:表示指针先指向下一个成员的地址,然后指向成员的值;  //指针加括号自加运算操作的是指针;

        (5)(指针++)->成员:表示指针指向成员的值,使用后指针指向下一个成员的值;

  1.4,指向结构体数组的指针;

    使用方法和结构体指针一样;数组指针自加运算是指向下一个结构体数组成员;

  1.5,结构体与函数参数的关系;

    1.5.1;使用结构体成员作为函数实参传递;(值传递,与普通变量使用方法一样)

    1.5.2;使用结构体变量作为函数实参传递;(值传递,传递的是结构体变量的所有值,值的参数传递是单向)

    1.5.3;使用指向结构体变量的指针作为函数实参传递;(地址传递,传递的是结构体变量的首地址,参数值双向传递)

2,共用体;

  含义:由关键字union定义,类型为DataUnion; 把几种不同类型的变量存放在同一段内存中,所以同一时刻的共用体变量指向同一个地址内的值;

  用法:定义和引用与结构体相同,但是共用体的初始化只要初始化一个值就可以了;

  声明:

     union DataUnion  //声明一个DataUnion类型的共用体;

    {  成员;         //成员列表,存入同一个地址中;

    }变量;                //可以顺便定义变量并初始化,也可以单独定义;

  定义:

              union DataUnion variable;  //定义一个共用体类型的变量variable;

  引用:共用体对象.成员

3,枚举;使用enum关键字;

  枚举类型包含一组相关枚举标识符;每个标识符一一对应一个整数值常量,称之为枚举常量;

  枚举类型初始化的时候我们可以只初始化某个特定的标识符,然后剩下的标识符依次加一;

  枚举类型初始化的时候我们也可以给每个标识符直接赋值,枚举常量是一个常量,定义后不可以在调用中修改;

4,typedef  声明新类型的关键字; 就是将已有的类型声明出新的名字;

转载于:https://www.cnblogs.com/caesura-k/p/9807634.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值