结构体和共用体

结构体

 结构体在使用的过程中,要先定义结构体类型,在定义结构体变量。简单类型是由系统直接定义的,如int、float、char,可以直接引用。而结构体类型需要由程序员定义,必须先定义后引用。

结构体类型定义的一般格式如下:

struct <结构标记>

{

   成员1;

   成员2;

   ...

   成员n;

};     /*必须以分号结尾*/

struct是结构体类型的关键字,他与用户指定的类型标识符共同组成结构体类型名。花括号中的结构体成员表由若干成员定义组成,每一个成员定义的格式如下:类型名 成员名

例如

struct date
{
    int year;
    int month;
    int day;
};

不能对定义的结构体类型进行赋值或运算

结构体变量的定义:

(1)先定义结构体类型在定义结构体变量

struct student   /*定义结构体类型*/

{

    ...

};

struct student stu1,stu2;  /*定义结构体变量*/

(2)在定义结构体类型的同时定义结构体变量

struct  student

{

   ...

}stu1,stu2;

(3)不定义类型名,直接定义结构体变量

struct

{

   ...

}stu1,stu2;

结构体变量的使用

   结构体变量的初始化一般格式如下:

   结构体类型名 结构体变量={初始值表};l

   例如:void main()

            {

              struct date stu1={1990,3,5};

           }

   未进行初始化时为默认值,整数和浮点数默认为0,字符和字符串默认值为'\0'.只能在定义结构体变量时使用该初始化格式。

  结构体变量成员的引用:结构体变量名.成员名

“.”是结构体成员运算符

 对结构体变量整体的引用:

(1)可作为函数的形参、实参或函数返回值来进行函数的数据传递。

(2)两个结构体变量的类型相同时,可以互相整体赋值。stu1=stu2;

(3)不可以对结构体变量进行逻辑操作,但可以逐个的比较成员。

结构体数组的定义

struct  student  stu[3]   /*定义结构体数组stu,数组长度为3*/

与结构体的定义和使用类似。

结构体与函数

结构体做函数参数 :
(1)把结构体变量的每个成员作为函数调用的实参进行传递

(2)结构体变量整体做函数的参数。在函数中对形参结构体变量成员的修改并不能反映到实参中,因此需要函数将整个结构体变量值返回给调用函数,这样被调用函数在定义是就必须以结构体类型作为函数的返回值。定义返回值为结构体类型的函数的一般形式如下

结构体类型名  函数名(形参表)

(3)使用指针以参数形式来传递结构体变量。

共用体

共用体的关键字为union,定义形式与结构体的定义形式一致。

用体的各个成员共享同一段内存,而结构体的各个成员都有各自的内存空间

共用体变量的初始化,初始化一个共用体变量,只能用一个值进行初始化。

引用时也通过“.” 。

   

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值