结构体

定义结构体一般形式为:
struct 结构体名
{
成员表列
}变量名表列;
例如:

struct student
{
    int num;
    char name[20];
    char sex;
    int age;
    float score;
    char addr[30];
}student1,student2;

说明:
1、结构体类型与结构体变量是不同的概念,不要混淆。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间
2、结构体类型中的成员名可以与程序中的变量名相同,但而这不代表同一对象。例如,程序中可另定义一个变量num,它与struct Student中的num是两回事,互不干扰。
对齐方式 (按基本数据类型对齐,系统默认是8字节对齐)
这里写图片描述

这里写图片描述
干预对齐方式:
# pragma pack(2) 以2字节方式对齐。
初始化(依次初始化)
只初始化第一个成员,其它默认初始化为0。

struct student
{
    int num;
    char name[20];
    char sex;
    int age;
    float score;
    char addr[30];
}student1 = {1001,"yhp","男","23","100","xxxx"};  //student = {1001};

结构体数组
结构体数组与数值数组不同之处在于没每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项。
定义结构体数组:
struct 结构体名
{
成员表列
}数组名[数组长度];
例如:

struct student
{
    int num;
    char name[20];
    char sex;
    int age;
    float score;
    char addr[30];
}student[5];

结构体指针
指向结构体对象的指针变量即可指向结构体变量,也可指向结构体数组中的元素。指针变量的基类型必须与结构体类型相同。例如:

struct  Student  *pt;   //pt可以指向  struct  Student 类型的变量或数组元素
 void main()
{
    Student s1 = { 0 };
    Student &st = s1;
    Student *sp = &s1;
    s1.id = 1001;//成员访问
    st.id = 1002;//引用访问
    (*sp).id = 1003;//指针访问
    sp->id = 1004;//指针访问
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值