• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Tiger123
博客园    首页    新随笔    联系   管理    订阅  订阅

结构的应用

结构的应用

题目:请你用编程,完成输出学生基本信息的功能(如姓名 ID 成绩 出生日期 可以自行输入 也可以自定义数值)

在这里,我们要介绍一下结构这种功能:

结构的介绍:第一,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型。第二,相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。

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

        struct  结构体类型名  {成员表列};

      图示:

      

 

 

本题的参考代码:

 

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    struct Date //创建Date结构(也叫结构体) 
    {
        int year; //在Date这个结构里面声明year这个整型变量,表示年 
        int month;//在Date这个结构里面声明month这个整型变量,表示月 
        int day;  //在Date这个结构里面声明day这个整型变量,表示天 
    }; //结尾必须有分号 
    struct StudentEx //创建StudentEx结构
    {
        unsigned ID;
        char szName[20];
        float score;
        Date birthday; //Date是用户自创建的一种类型,用结构创建,这里表示是Date类型 
    }; //结尾要有分号 
    StudentEx stu; //用StudentEx这个结构名称做类型,声明一个stu的变量
    cin>>stu.score; //往stu这个变量里的fGPA里输入,访问结构变量的成员变量用"."连接 
    stu.ID=12345; //把stu里的ID初始化成12345,使用形式:结构变量名.成员变量名(上面的也是一样) 
    strcpy(stu.szName,"Tom"); //把Tom复制到stu里的szName中
    stu.birthday.year=1984;//把stu中的birthday中的year初始化成1984
    stu.birthday.month=12;//把stu中的birthday中的month初始化成12
    stu.birthday.day=3;//把stu中的birthday中的day初始化成3
    unsigned int *p=&stu.ID;//p指向stu中的ID成员变量
    cout<<"学生姓名:"<<stu.szName<<endl;
    cout<<"学生学号:"<<*p<<endl;
    cout<<"学生成绩:"<<stu.score<<endl;
    cout<<"学生出生日期:"<<stu.birthday.year<<"-"<<stu.birthday.month<<"-"<<stu.birthday.day;//输出学生信息 
}

 需要注意的一点是:

Date本身是一个结构体类型,所以如果想要使用该类型里的变量,则需要进行逐层引用.这类似于后面面向对象中的对象.变量名

posted @ 2022-05-10 21:06  い散落满天回忆的碎片  阅读(52)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3