• C语言结构体变量定义、引用、初始化


    一、结构体概述

    我们学过的数据类型有:int ,float ,double ,char ,int a[10],float b[100];  有时候我们需要把这些整合起来一起使用。

    例如:001 张三  男  18  xx栋xx单元xx号

       002 李四  男  18  xx栋xx单元xx号

    结构体:结构体也是一种数据类型,被叫做结构体类型。结构体,说白了就是把多种不同类型的数据捏到一起,目的是 能够表达更丰富的信息,有点类似于很多高级语言中的“记录”;

    1. struct student //定义一个结构体类型
    2. {
    3. int num; //学号
    4. char name[100]; //姓名
    5. int sex; //性别:0 女 , 1 男
    6. int age; //年龄
    7. char address[100]; //地址
    8. };
    结构体类型 定义的一般形式:
    struct  结构体名
    {
           //成员列表(可以多个)
    }; //千万 不要忘记加这个分号 ;
    二、定义结构体类型变量的方法
    例如:定义一个整型变量    int a;
    要定义一个结构体类型变量,我们把 结构体名 看成一个类型名 就可以了,定义结构体类型有 三种方法
    (1) struct   结构体名  变量名列表
    例如:
    struct student s1,s2;
    (2) 定义结构体的时候就定义结构体类型变量,变量位置位于 } 之后, ;之前,多个变量之间用 , 隔开。
        struct 结构体名 
       {
          //成员列表
        } 变量名列表;
    例如:
      struct student  //定义一个结构体类型
       {
        int num;          //学号
        char name[100];   //姓名
        int sex;          //性别:0 女   , 1  男
        int age;          //年龄
        char address[100];   //地址
    } s1,s2;
    (3) 直接定义结构类型变量,连结构体名都省略了
    一般形式:
    struct
    {
      成员列表;
    }变量名列表;
    说明
    A.使用结构体,我们一般要 先定义一个 结构体类型然后定义 某些变量为该类型的变量,这是分两步走的;
    B.结构体内部 还可以嵌套结构体
    C.结构体内 成员名,可以与程序中的变量名相同,彼此之间互不影响。
    三、结构体类型变量的引用
    (1) 不能结构体变量作为 一个整体进行引用,比如s1,s2都是结构体变量,但不能拿过来直接用,只能对结构体变量中的 各个成员分别引用;引用的方式为:
    结构体变量名 . 成员名      [这个 .  叫做结构成员运算符,该运算符优先级 非常高  ,与()平级,所以可以把                                                 s1.num 看作是一个整体]
    例如:s1.num=1001;  //将1001赋值给s1变量中的成员num
    (2) 如果成员本身 又属于一个结构体类型,则要用若干个成员运算符,一级一级的找到最低一级成员,只能对最低级成员进行赋值或者存取。
    s1.birthday.month=12;
    s1.birthday.day=30;
    s1.birthday.year=2018;
    (3) 成员变量,就当成普通变量,可以像普通变量一样进行各种运算
    s2.age=s2.age;    //赋值
    int agesum=s2.age+s2.age;   //求年龄和
    s1.age++;      //年龄自加1,因为   的优先级最高,所以s1.age是个整体。
    //s1++;  这样是不可以的这样写的。也不可以这样写:s1.brithday++;
    (4) 因为成员变量我们也是当成普通变量的,所以它们 也是有地址的
    int *p=&s1.num;
    pritntf("%d\n",*p);    //结果是:1001
    四、结构体变量的初始化
    定义结构体类型的时候赋值
    struct student s3={1003,"王五",1,16,"3栋5楼",10,14,2001};    //定义结构体类型的时候赋值
  • 相关阅读:
    HTML和CSS学习总结
    CODING DevOps产品认证笔记
    图像分割:DeepLabV2网络简介
    html静态网站基于品优购电商购物网站网页设计与实现共计3个页面 html+css+javascript网页设计实例 企业网站制作
    Ubuntu 17.10的超震撼声音权限
    WRF-Hydro模式
    代码随想录第38天 | ● 完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ
    美容仪器经营小程序商城的作用如何
    几个事件的问题
    计算机网络期末知识点(第六章)
  • 原文地址:https://blog.csdn.net/qq_48516121/article/details/126891554