结构体的自学笔记

一位蒟蒻的自学笔记,有不对的地方请指出。

s r O 神 犇 O r z srO\quad神犇\quad Orz srOOrz

一、结构体:

它是将不同类型的数据存放在一起,作为一个整体进行处理的结构。

定义如下:

#include<bits/stdc++.h>
using namespace std;
typedef struct{
	int n;
}name;
int main(){
	
	return 0;
}

那么,这个 typedef 又是什么呢?

二、 typedef:

typedef 为C语言的关键字,作用是为一种数据类型定义一个新名字,这里的数据类型包括内部数据类型
(int,char等)和自定义的数据类型(struct等)。

三、结构体的基本结构:

#include<bits/stdc++.h>
using namespace std;
typedef struct{
	/*数据类型 数据名称*/;
	/*数据类型 数据名称*/;
	/*数据类型 数据名称*/;
	/*……*/; 
}/*变量名*/; //分号莫要少 
int main(){
	
	return 0;
}

四、结构体的赋值:

结构体的每个变量都是需要赋值的。可以用输入流和格式化输入,或如下方法:
#include<bits/stdc++.h>
using namespace std;
typedef struct{
	int n;
	string a;
}book;
int main(){
	book s1{
		3,
		"Hello, World!" 
	};
	cout<<s1.a<<endl;
	cout<<s1.n<<endl;
	return 0;
}

输出如下:
58aHMT.png

附:关于结构体输入和输出的变量名称:
cin>>/*赋值名称.变量名称*/;
cout<</*赋值名称.变量名称*/;
中间是个点!别把它忘了。

五、给结构体赋值的基本结构:

#include<bits/stdc++.h>
using namespace std;
typedef struct{
	int n;
	string a;
}book;//定义book为结构体名 
int main(){
	book s1{//book为结构体名,s1是接下来输出要用的,暂时叫它赋值名称 
		3,//注意这里是逗号 
		"Hello, World!" //最后一行无逗号
		/*定义了几个变量就写几行,且变量类型要对应*/ 
	};
	/*输出格式:复制名称.变量名称*/
	cout<<s1.a<<endl;
	cout<<s1.n<<endl;
	return 0;
}

六、结构体的应用

假如要输出王五、李四等的相关信息,该怎么办?
1. 普通结构体

#include<bits/stdc++.h>
using namespace std;
typedef struct zhangsan{
	string name;
	int age;
	int schoolnumber;
};
typedef struct lisi{
	string name;	//变量名可以重复
	int age;
	int schoolnumber;
};
int main(){
	zhangsan s1{
		"张三",
		1996126,
		15635
	};
	lisi s2{
		"李四",
		1997520,
		163819
	};
	cout<<s1.name<<' '<<s1.age<<' '<<s1.schoolnumber;
	cout<<endl;	//换行
	cout<<s2.name<<' '<<s2.age<<' '<<s2.schoolnumber;
	return 0;
}

2. 高级结构体

#include<bits/stdc++.h>
using namespace std;
typedef struct student{
	string name;
	int age;
	int num;
}stu;
int main(){
	struct student stuArray[3]={
		{"张三",1996126,1652},
		{"李四",1997520,4695},
		{"王五",1995318,3155}
	};
	for(int i=0;i<3;i++){
		cout<<"第"<<i+1<<"个学生的信息"<<':';
		cout<<stuArray[i].name<<' '<<stuArray[i].age<<' '<<stuArray[i].num;
		cout<<endl; 
	}
	return 0;
}


七、结构体的输入

上面我们只说到了结构体的应用等,而只有这些肯定是不行的。做题是总不能只让电脑输出吧?
那么怎么输入呢?
很简单:

#include<bits/stdc++.h>
using namespace std;
typedef struct student{
	string name;
	int age;
}stu;
int main(){
	struct student stuArray[3];
	for(int i=0;i<3;i++){
		cin>>stuArray[i].name>>stuArray[i].age;
	}
	for(int i=0;i<3;i++){
		cout<<"第"<<i+1<<"个学生的信息"<<':';
		cout<<stuArray[i].name<<' '<<stuArray[i].age<<' ';
		cout<<endl; 
	}
	return 0;
}

运行结果如下:
58hH4P.png

T h e    E n d {\color{Yellow}\colorbox{Pink}{$\mathrm{The\; End}$}} TheEnd


蒟 蒻 自 学 笔 记 本 底 线 蒟蒻自学笔记本底线 线


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值