问题描述:
根据下列代码和结果回答下列问题。
// Created by 黑马程序员.
#include "iostream"
using namespace std;
#include <string>
//结构体定义
struct student
{
//成员列表
string name; //姓名
int age; //年龄
int score; //分数
}
stu3; //结构体变量创建方式3
int main() {
system("chcp 65001");
//结构体变量创建方式1
struct student stu1; //struct 关键字可以省略
stu1.name = "张三";
stu1.age = 18;
stu1.score = 100;
cout << "姓名:" << stu1.name << " 年龄:" << stu1.age << " 分数:" << stu1.score << endl;
//结构体变量创建方式2
struct student stu2 = { "李四",19,60 };
cout << "姓名:" << stu2.name << " 年龄:" << stu2.age << " 分数:" << stu2.score << endl;
stu3.name = "王五";
stu3.age = 18;
stu3.score = 80;
cout << "姓名:" << stu3.name << " 年龄:" << stu3.age << " 分数:" << stu3.score << endl;
system("pause");
return 0;
}
D:\CLion_code\cmake-build-debug\CLion_code.exe
Active code page: 65001
姓名:张三 年龄:18 分数:100
姓名:李四 年龄:19 分数:60
姓名:王五 年龄:18 分数:80
Press any key to continue . . .
在C++中,结构体的定义是什么呢?如何新建一个结构体呢?新建好的结构体是如何进行声明和赋值的呢?声明和赋值可以一起进行吗?如何打印输出结构体的属性呢?
问题解答:
在C++中,结构体是一种用户定义的数据类型,可以用来组合不同类型的数据。下面是针对你提问的详细解答:
1. 结构体的定义
结构体通过 struct
关键字定义,其基本格式如下:
struct StructName {
DataType member1; // 成员1
DataType member2; // 成员2
// 其他成员
};
在你的代码中,结构体 student
被定义为:
struct student {
string name; // 姓名
int age; // 年龄
int score; // 分数
};
2. 新建一个结构体
可以通过两种方式创建结构体变量:
- 方式1(单独声明):
struct student stu1; // 使用 struct 关键字(可省略)
- 方式2(使用初始化列表):
struct student stu2 = { "李四", 19, 60 };
- 方式3(在定义时创建):
struct student stu3; // 直接在结构体定义后创建
3. 声明和赋值
- 声明:创建结构体变量时,定义了一个新的结构体实例。
- 赋值:给结构体的各个成员赋值。
在你的代码中,结构体 stu1
的赋值是分开的,使用点操作符:
stu1.name = "张三";
stu1.age = 18;
stu1.score = 100;
而 stu2
的赋值是通过初始化列表一次性完成的。
4. 声明和赋值可以一起进行吗?
是的,可以一起进行。在声明结构体时可以直接进行赋值,例如:
struct student stu2 = { "李四", 19, 60 };
5. 打印输出结构体的属性
可以使用 cout
来打印结构体的各个属性。通过点操作符访问结构体的成员,如下所示:
cout << "姓名:" << stu1.name << " 年龄:" << stu1.age << " 分数:" << stu1.score << endl;
这样就可以输出 stu1
的所有属性。
示例代码的输出
程序输出了三名学生的姓名、年龄和分数:
姓名:张三 年龄:18 分数:100
姓名:李四 年龄:19 分数:60
姓名:王五 年龄:18 分数:80
希望这些解释对你理解结构体的定义、创建、赋值和输出有帮助!如果还有其他问题,欢迎继续提问!
标签:stu1,struct,定义,如何,student,结构,赋值 From: https://blog.csdn.net/weixin_43501408/article/details/142662764