C++学习之路抓紧跑路版(四)-结构体


一、结构体的定义

结构体就是一种数据结构存放着不同的数据类型,例如int,string,char,int *等等,而结构题的公式为:

struct 结构体名{数据类型}

举例:

struct student{
	int age;
	string name;
	int hight;
}

上面就是结构体的基本形式,有了这个基本形式之后我们就可以创建结构体了。

二、结构体的使用

我们知道了结构体的基本形式之后我们可以试着初始化和实例化结构体了,其中初始化分为直接初始化和简介初始化,如:

#include<iostream>
#include<string>
using namespace std;
struct student{
	int age;
	string name;
	int money;
};
int main()
{
	//间接初始化
	struct student lishuo;
	lishuo.age = 18;
	lishuo.name = "lishuo";
	lishuo.money = 20;
	//直接初始化
	struct student lishuo1 = {19,"lishuo1",24};
	cout<<lishuo.age<<endl;
	cout<<lishuo.name<<endl;
	cout<<lishuo.money<<endl;
	cout<<lishuo1.age<<endl;
	cout<<lishuo1.name<<endl;
	cout<<lishuo1.money<<endl;
}

输出:

18
lishuo
20
19
lishuo1
24

三、结构体的成员函数

结构体中不仅仅可以包含简单的整形、字符型、字符串行的成员,也可以包含成员函数,我们实例化一个结构体之后可以直接调用这个函数,这个函数在这里又叫做方法(功能),例:

#include<iostream>
#include<string>
using namespace std;
struct student{
	int age;
	string name;
	int money;
	void fun()
	{
		cout<<"lishuo is having fun"<<endl;
	}
};
int main()
{
	//实例化一个结构体,并且直接初始化
	struct student lishuo = {18,"lishuo",20};
	cout<<lishuo.age<<endl;
	cout<<lishuo.name<<endl;
	cout<<lishuo.money<<endl;
	//调用fun方法
	lishuo.fun();
}

输出:

18
lishuo
20
lishuo is having fun

四、结构体数组

当我们想要初始化很多结构体的时候我们可以建立一个结构体数组方便管理,如:

#include<iostream>
#include<string>
using namespace std;
struct student{
	int age;
	string name;
	void fun()
	{
		cout<<"lishuo is having fun"<<endl;
	}
};
int main()
{
	struct student stu[2] = {{18,"lishuo"},{19,"lishuo1"}};
	for(int i = 0;i < 2;i++)
	{
		cout<<stu[i].age<<" "<<stu[i].name<<endl;
	}
}

输出:

18 lishuo
19 lishuo1

五、typedef小用法

这里说下typedef在结构体中的常用方法,typedef这个用法可以更改结构体的名字,那么之后每次再次实例化结构体的时候就不用每次都写struct就可以了,例:

#include<iostream>
#include<string>
using namespace std;
typedef struct{//typedef重新命名结构体
	int age;
	string name;
	void fun()
	{
		cout<<"lishuo is having fun"<<endl;
	}
}student;
int main()
{
	student stu[2] = {{18,"lishuo"},{19,"lishuo1"}};
	for(int i = 0;i < 2;i++)
	{
		cout<<stu[i].age<<" "<<stu[i].name<<endl;
	}
}

六、结构体指针

我们也可以用结构体指针的方式来创建一个结构体,例:

#include<iostream>
#include<string>
using namespace std;
typedef struct{
	int age;
	string name;
	void fun()
	{
		cout<<"lishuo is having fun"<<endl;
	}
}student;
int main()
{
	student lishuo;
	student *p;
	p = &lishuo;
	p->age = 30;
	(*p).name = "lishuo";
	cout<<lishuo.age<<endl<<lishuo.name<<endl;
}

输出:

30
lishuo

注意:当用指针初始化结构体的时候要用->这个符号进行初始化和调用。

总结

这些就是目前经常用到的结构体相关的用法,如果后期遇到了其他结构体相关的用法我会继续更新的,希望大家要努力学习(pao lu)哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值