自定义数据类型—结构体类型

DAY1 C++结构体类型初识

  • 结构体概述

C和C++允许用户自己制定一种数据类型,称为结构体

举例如下:

  • 结构体类型的一般形式

一般形式:
struct 结构体类型名
{成员表列:类型名 成员名}

struct Student
{ int num;
  char name[];
  char sex;
  int age;
  float score;
  char addr[];
};
  • **注意:**花括号后的;不要弄掉了。

  • 每个成员也称为结构体中的一个“域”

  • 成员表列又称为“域表”

  • 结构体类型变量的定义方法

第1种:先声明结构体类型再定义变量名

Student Student1 Student2;
  • 其中:Student是结构体类型名,Student1 Student2是结构体变量名
  • 在C语言中,在定义结构体变量时,要在结构体类型名前面加上struct

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

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

第3种:直接定义结构体类型变量(这种方法很少用)

struct 
   {
     成员表列
   }变量名表列;

关于结构体类型:

  • 只能对结构体变量中的成员赋值,不能对结构体类型赋值

  • 在编译时,不会为类型分配空间,只为变量分配空间

  • 结构体中的成员可以单独使用,相当于普通变量

  • 成员也可以是一个结构体变量:
    在这里插入图片描述
    在这里插入图片描述

  • 结构体中的成员名可以和程序中的变量名相同,但二者没有关系。如程序中定义的整形变量num和student中的num是两回事,互不影响。

  • 结构体变量的引用

  • 可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量:student1=student2

  • 可以引用一个结构体变量中的一个成员的值:student1.num表示结构体变量student1中的成员的值。引用结构体变量中成员的一般方式为:结构体变量名.成员名。例如:student1.num=100.

  • 是成员运算符,他在所有的运算符中优先级最高,所以可以把student.num作为一个整体来看待,上面赋值语句的作用是将整数100赋给student变量中的整型成员num

  • 如果成员本身也是一个结构体类型,则要一级一级地找到最低一级的成员:student.birthday.month

  • 不能将一个结构体变量作为一个整体进行输入和输出,只能对结构体变量中的各个成员分别进行输入和输出:不可以cout<<student1;

  • 结构体变量的成员可以像普通成员一样进行运算

  • 可以引用结构体变量(成员)的地址:
    cout<<&student1;//输出student的首地址
    cout<<&student1.age;//输出student1.age的首地址
    结构体变量的地址主要用作函数参数,也可以引用结构变量的地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值