【C语言】结构体变量学习笔记1

目录

定义和使用结构体类型

建立/声明 结构体类型

定义结构体类型变量

第一种:声明结构体变量和定义结构体变量分离。

第二种:在声明类型的同时定义变量

第三种:不指定类型名而直接定义结构体型变量

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


定义和使用结构体类型

建立/声明 结构体类型

struct Student
{ 
  int num;
  char name[20];
  char sex;
};

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

struct 结构体名

{成员表列};

注意,成员表列中的成员也可以是结构体类型。

定义结构体类型变量

第一种:声明结构体变量和定义结构体变量分离。

例如

struct Student//结构体变量声明
{ 
  int num;
  char name[20];
  char sex;
};

struct Student a,b;//结构体变量定义

这里的定义可理解成 int a,b; 类型

第二种:在声明类型的同时定义变量

例如

struct Student//结构体变量声明
{ 
  int num;
  char name[20];
  char sex;
} student1,student2;//结构体变量定义

这里student1和student2就是被定义的变量名称

这种定义方法的一般形式为

struct 结构体名

{成员表列

}变量名表列;

在写小程序时,用这种方式比较方便,但是写大程序时,往往要求对类型的声明和对变量的定义分别放在不同的地方,以使程序结构清晰,便于维护,所以一般不多用这种方式。

第三种:不指定类型名而直接定义结构体型变量

其一般形式为

struct 

{成员表列

}变量名表列;

指定了一个无名的结构体变量,没有名字。

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

例题及代码

把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这个学生的信息。

#include <stdio.h>
int main()
{struct Student       //声明结构体变量
   {long int num;
    char name[20];
    char sex;
    char addr[20];
   }a = {10101,"Li Lin",'M',"123 Beijing Road"};     //定义结构体变量a并初始化
   printf("No.:%ld\nname:%s\nsex:%c\naddress:%s\n",a.num,a.name,a.sex,a.addr);
  return 0;
}

(1)定义时可以直接对成员初始化,始化列表是用花括号括起来的。

C99标准允许对某一成员进行初始化,如:

struct Student b={.name="Zhang Fang"};   //其中成员名前有成员运算符"."

其中".name"隐含代表结构体变量b中的成员b.name。其他未初始化的成员被系统初始化为0,字符型则被系统初始化为'\0',指针成员被系统初始化为NULL。      

(2)引用结构体变量中成员的值,引用方式为:

                结构体变量名.成员名

“.”是成员运算符,优先级是所有运算符中最高的

(3)只能对最低级的成员进行复制或存取以及运算

(4)同类的结构体变量可以互相赋值

student1=student2;    //假设student1和student2已定义为同类型的结构体变量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

introversi0n

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

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

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

打赏作者

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

抵扣说明:

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

余额充值