用户自定义数据类型之结构体

结构体

一、结构体的定义

       为了将一个事物的多重属性描述清楚,人为构造出来的一个可以容纳相同或者不同数据类型的元素的集合,结构体和数组一样,也是一种构造数据类型。

定义结构体类型的一般形式为:

             struct  结构体名

            {

               数据类型   成员名1;

               数据类型   成员名2;

               ......   

              数据类型    成员名n;     

             };

特点:①结构体类型是用户自行构造的。

           ②它由若干不同的基本数据类型的数据构成。

           ③它属于C语言的一种数据类型,与整形、浮点型相当。因此,定义它时不分配空间,只有用它定义变量时才分配空间。

二、结构体变量的声明、使用及初始化

1、结构体变量的声明

①先定义结构体类型,再定义变量名

          struct 结构体名

         {

            类型 成员名;

            类型 成员名;

            ........

         };

         struct结构体名 结构体变量名;

       这里的结构体名是结构体的标识符,不是变量名。类型可以是基本的数据类型也可以是其他构造型数据类型。

  ②在定义类型的同时,定义变量。

            struct结构体名

            {

                 类型 成员名;

                 类型 成员名;

                  ......

            }变量名;

   ③直接定义结构体变量。

          struct

         {

             类型 成员名;

             类型 成员名;

             ......

         }变量名;

2、结构体变量的使用

(1)结构体变量是不同数据类型的若干数据的集合体。在程序中使用结构体变量时,一般情况下,不能把它作为一个整体参加数据处理,而参加各种运算和操作的是结构体变量的各个成员项数据。

(2)结构体变量的成员用以下一般形式表示:

                                                      结构体变量名.成员名

(3)结构体变量名在使用中应注意以下几点

      ①不能将一个结构体类型变量作为一个整体加以引用,而只能对结构体类型变量中的各个成员分别引用。

      ②如果成员本身又属于一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级成员。只能对最低级的成员进行赋值或存取以及运算。

      ③对成员变量可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。

      ④在数组中,数组是不能彼此赋值的,而结构体类型变量可以相互赋值。在C程序中,同一结构体类型的结构体变量之间允许相互赋值,而不同结构体类型的结构体变量之间不允许相互赋值,即使两者包含有同样的成员。

 3、结构体变量的初始化

      与其他类型变量一样,也可以给结构体的每个成员赋初值,这称为结构体的初始化。

一种是在定义结构体变量时进行初始化,格式如下:

              struct  结构体名  变量名={初始数据表};

另一种是在定义结构体类型时进行结构体变量的初始化,格式如下:

             struct 结构体名

            {

                 类型  成员名;

                 类型  成员名;

                 .......

            }变量名={初始数据表};

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小白i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值