C++结构体

本文介绍了C++中的结构体,它能组织不同数据类型形成集合体,便于管理和使用。文中通过示例展示了如何定义结构体,给结构体变量赋值,以及如何将结构体作为参数传递给函数。还涉及了typedef重命名结构体和通过指针操作结构体成员的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结构体可以组织不同的数据类型,使形成一个集合体,便于使用与管理。

代码使用演示:


#include <iostream>
#include<string>

using namespace std;

//定义结构体student,并定义两个结构体变量student1,student2
struct student{
    string name;
    int age;
    int number;
    string hobby;
    }student1,student2;

//可以把结构体作为参数使用
void  studentInfo(struct student stu);
//只输出学生信息
void  studentInfo(struct student stu){
    cout<<"学生的信息:"<<stu.name<<","<<stu.age<<","<<stu.number<<","<<stu.hobby<<endl;
}

//可以给结构体重新定义一个名字,然后在使用结构体时其类型就为重定义的名字STU
typedef struct {
    string name;
    int age;
    int number;
    string hobby;
}STU;


int main() {
    //给结构体赋值
    student1.name="张三";
    student1.age=22;
    student1.number=123;
    student1.hobby="羽毛球";

    student2.name="李名";
    student2.age=19;
    student2.number=22;
    student2.hobby="篮球";

    //访问结构体元素
    cout<<"学生student1的信息:"<<student1.name<<","<<student1.age<<","<<student1.number<<","<<student1.hobby<<endl;
    cout<<"学生student2的信息:"<<student2.name<<","<<student2.age<<","<<student2.number<<","<<student2.hobby<<endl;

    //在创建一个结构体变量student3
    struct student student3;
    student3.name="王星";
    student3.age=34;
    student3.number=21;
    student3.hobby="编程";
    //输出信息
    cout<<"学生student3的信息:"<<student3.name<<","<<student3.age<<","<<student3.number<<","<<student3.hobby<<endl;


    //把结构体作为参数传递给函数,传入的结构体需要提前初始化并赋值,否则结构体的值将是编译器给的默认值
    studentInfo(student1);
    studentInfo(student2);
    studentInfo(student3);

   //使用结构体指针,这里相当于新建了一个结构体对象
   struct student *stu4=new student;
   stu4->name="库克";
   stu4->age=23;
   stu4->number=33;
   stu4->hobby="研究高科技";
   //输出结构体信息
   cout<<"stu4的信息为:"<<stu4->name<<","<<stu4->age<<","<<stu4->number<<","<<stu4->hobby<<endl;

   //使用结构体的另一种方式是获取现有结构体变量的地址
   struct student *stu5=&student3;
    cout<<"stu5的信息为:"<<stu5->name<<","<<stu5->age<<","<<stu5->number<<","<<stu5->hobby<<endl;

    //结构体可以相互直接赋值
    struct student stu6=student3;
    cout<<"学生stu6的信息:"<<stu6.name<<","<<stu6.age<<","<<stu6.number<<","<<stu6.hobby<<endl;



    //使用头部定义的结构体的别名来使用结构体,STU相当于 Struct STU STU ;
    STU stu7;
    stu7.name="王星";
    stu7.age=34;
    stu7.number=21;
    stu7.hobby="编程";
    //输出信息
    cout<<"学生student3的信息:"<<stu7.name<<","<<stu7.age<<","<<stu7.number<<","<<stu7.hobby<<endl;


    std::cout << "Hello, World!" << std::endl;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

code_shenbing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值