c语言----定义和使用结构体变量

1.结构体类型

由于一个数组中只能存放同一种类型的数据,很不方便,所以C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,也就是结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。

声明一个结构体类型的一般形式是

stuct 结构体名
    {成员列表};

这样只是建立了一个结构体类型,相当于一个模型,并没有定义变量,其中并没有具体数据,系统也不对之分配内存单元。可以采用以下三种方法定义结构体类型变量。

2.结构体类型变量

  • 先声明结构体类型,再定义该类型变量。
struct student
{
    int num;
    char name[20];
    char sex;
    int age;
}
struct student S1,S2;
  • 在声明定义的同时定义变量
struct student
{
    int num;
    char name[20];
    char sex;
    int age;
}S1,S2;
  •  不指定类型名直接定义结构体变量
struct
{
    int num;
    char name[20];
    char sex;
    int age;
}S1,S2;

指定了一个无名的结构体类型,它没有名字(不出现结构体名字),显然不能再用这个结构体类型去定义其他变量,这种方式用的不多。

3.结构体变量的初始化和引用

#include <stdio.h>
int main()
{
    struct student
    {
        int num;
        char name[20];
        char sex;
        int age;
     }S1={1001,"zhangsan","M",18};
     printf("NO.:%d\name:%s\sex%c\age:%d\n",S1.num,S1.name,S1.sex,S1.age);
     return 0;
}

(1)在定义结构体变量时可以对它的成员初始化,初始化列表时用花括号括起来的一些常量,这些常量依次赋值给结构体变量中的各成员,注意:是对结构体变量初始化,而不是对结构体类型初始化。

(2)引用结构体变量中成员的值:结构体变量名.成员名。“.”是成员运算符,在所有的运算符中优先级最高。

  • 不能企图输出结构体变量名来输出结构体的所有成员,只能分别输出各个成员的值
  • 结构体变量成员可以像普通变量一样进行运算
  • 同类的结构体变量可以相互赋值
  • 可以引用结构体变量成员的地址,也可以引用结构体变量的地址,主要用作函数参数,传递结构体变量地址;

猜你喜欢

转载自blog.csdn.net/weixin_39371711/article/details/81737043
今日推荐