当前位置:   article > 正文

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

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};    //定义结构体类型的时候赋值
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/程序自动化专家/article/detail/63164
推荐阅读