结构体
结构体类型概念
结构体:一种构造类型,由若干成员组成,成员可以是基本数据类型,也可以是构造类型
struct 结构体名
{
成员列表
};
结构体变量定义
定义:
方式一:先声明结构体类型,再定义变量
struct Product product1;
struct Product product2;
//Product是结构体类型
//product1、product2是结构体变量名
结构体变量的定义不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型。而基本变量的定义只需要指定类型即可。
定义结构体变量后,系统会为其分配内存单元,大小为定义成员列表的大小总和。
方式二:在声明结构类型的同时定义变量
struct Product{
//成员列表
}product1,product2;
方式三:直接定义结构体类型变量
struct{
//成员列表
}product1,product2;
类型与变量不同,在编译时,计算机不会对类型进行分配内存,只对变量分配内存
结构体变量的引用
对结构体变量进行引用时,不能直接将结构体变量作为一个整体进行输入和输出,在进行 输出时需要对结构体变量进行赋值、存取或运算。赋值方法:结构变量名.成员名=值。
如果成员变量本身是结构体变量,则需要一级一级的赋值,即智能对最低一级进行赋值、运算、存取
#include <stdio.h>
#include <stdlib.h>
struct test{
int num;
char name;
}test01;
int main()
{
scanf("%d",&test01.num);
printf("%d",test01.num);
return 0;
}
结构体类型的初始化
#include<stdio.h>
struct Student /*学生结构*/
{
char cName[20]; /*姓名*/
char cSex; /*性别*/
int iGrade; /*年级*/
} student1={"HanXue",'W',3}; /*定义变量并设置初始值*/
int main()
{
struct Student student2={"WangJiasheng",'M',3};/*定义变量并设置初始值*/
/*将第一个结构体中的数据输出*/
printf("the student1's information:\n"