结构体(日志19)

一、结构体基本概念

结构体属于用户自定义的数据类型,允许用户存储不同的数据类型

结构体的定义和使用

语法struct 结构体名{ 结构体成员列表};

通过结构体创建变量的方式有3种:

  • struct 结构体名 变量名
  • struct 结构体名 变量名={成员1值,成员2值...}
  • 定义结构体时顺便创建变量

示例:

#include<iostream>
#include<string.h>
using namespace std;
//结构体定义
//1.创建学生数据类型:学生包括(姓名,年龄,分数)
struct Student
{
	//成员列表
	string name;//姓名
	int age;//年龄
	int score;//分数
}s3;//顺便创建结构体变量
//2.通过学生类型创建具体学生

int main()
{
	//2.1struct Student s1
  //struct 关键字可以省略
	struct Student s1;
	//给s1属性赋值,通过.访问结构体变量中的属性
	s1.name = "张三";
		s1.age = 18;
	s1.score = 100;
	cout << "姓名:" << s1.name << "年龄:" << s1.age << "分数" << s1.score << endl;
	//2.2struct Student s2={...}//赋初值
  struct Student s2={"李四",19,80};
  cout<<"姓名:"<< s2.name<<"年龄:" << s2.age<< "分数" << s2.score<< endl;
	//2.3在定义结构体时顺便创建结构体变量
  s3.name="王五";
  s3.age=18;
  s3.score=90;
 cout<<"姓名:"<<s3.name<<"年龄:"<<s3.age<<"分数"<<s3.score<<endl;
	return 0;
}

总结:

定义结构体时的关键字是struct,不可省略

创建结构体变量时,关键字struct可以省略

结构体变量利用操作符“ . ”访问成员

二、结构体数组

作用:将自定义的结构体放入到数组中方便维护

语法struct 结构体名 数组名[元素个数]={ { },{ },...{ } };

#include<iostream>
#include<string.h>
using namespace std;
//1.定义结构体
struct Student
{
	//姓名
	string name;
	//年龄
	int age;
	//分数
	int score;
};
int main()
{
	//2.创建结构体数组
	struct Student stu[3] =
	{
	  {"张三",18,100},
	  {"李四",19,80},
	  {"王五",18,80}
	};
		//3.给结构体数组中的元素赋值
	stu[2].name = "赵六";
	stu[2].age = 16;
	stu[2].score = 99;
	//4.遍历结构体数组
	for (int i = 0; i < 3; i++)
	{
		cout << "姓名:" << stu[i].name << "年龄:" << stu[i].age << "分数:" << stu[i].score << endl;
	}
	return 0;
}

三、结构体指针

作用:通过指针访问结构体的成员

  • 利用操作符->可以通过结构体指针访问结构体属性
#include<iostream>
#include<string.h>
using namespace std;
//1.定义结构体
struct Student
{
	//姓名
	string name;
	//年龄
	int age;
	//分数
	int score;
};
int main()
{
  //1.创建学生结构体变量
  struct Student s1={"张三",17,95};
  //2.通过指针指向结构体变量
  struct Student *p=&s1;
  //3.通过指针访问结构体变量中的数据
  //通过结构体指针 访问结构体中的属性,需要利用‘->’
  cout<<"姓名:"<<p->name<<"年龄:"<<p->age<<"分数:"<<p->score<<endl;
  return 0;
  }

总结:结构体指针可以通过->操作符,来访问结构体中的成员

四、结构体嵌套结构体

作用:结构体中的成员可以是另一个结构体

#include<iostream>
#include<string.h>
using namespace std;
//1.定义学生结构体
struct Student
{
	//姓名
	string name;
	//年龄
	int age;
	//分数
	int score;
};
//创建老师结构体
struct Teacher
{
	//姓名
	string name;
	//编号
	int id;
	//年龄
	int age;
	//门下学生
	struct Student stu;
};
int main()
{
	//结构体嵌套结构体
	//创建老师
	Teacher t;
	t.name = "老王";
	t.id = 10087;
	t.age = 45;
	t.stu.name = "小明";
	t.stu.age = 18;
	t.stu.score = 90;
	cout << "老师:" << t.name << "id:" << t.id << "年龄:" <<t.age<< endl;
	cout << "学生:" << t.stu.name << "年龄:" << t.stu.age << "分数:" << t.stu.score;
	return 0;
}

五、结构体做函数参数

作用:将结构体作为参数向函数中传递

传递方式有两种:

1.值传递

2.地址传递

全部评论

相关推荐

WebSocket是一种在Web应用程序中实现实时双向通信的技术。它提供了一种持久连接,允许服务器与客户端之间进行双向数据传输。与传统的HTTP请求/响应模型不同,WebSocket允许服务器主动向客户端发送消息,而不需要客户端发起请求。要在Web应用程序中使用WebSocket进行实时通信,需要执行以下步骤:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&amp;uuid=b48bebe08e474db8b80b853b12bafd48创建一个WebSocket对象:使用JavaScript的WebSocket构造函数创建一个WebSocket对象,指定要连接的服务器URL。例如:var&nbsp;socket&nbsp;=&nbsp;new&nbsp;WebSocket(&quot;ws://example.com/socket-server&quot;);监听WebSocket事件:使用WebSocket对象的事件监听器来处理WebSocket的各种事件,例如onopen、onmessage、onclose和onerror。这些事件将在WebSocket状态变化、接收到消息、关闭连接或发生错误时被触发。建立连接:一旦创建了WebSocket对象,通过调用其open()方法建立与服务器的WebSocket连接。当连接建立成功时,onopen事件将被触发。发送和接收消息:使用WebSocket对象的send()方法向服务器发送消息,消息可以是字符串或其他数据类型。服务器接收到消息后,可以使用WebSocket对象的onmessage事件来处理。关闭连接:当需要终止WebSocket连接时,可以调用WebSocket对象的close()方法。服务器会收到一个关闭请求,如果确定关闭连接,会发送一个关闭信号给客户端并触发onclose事件。通过使用WebSocket,Web应用程序可以实现实时的双向通信,适用于聊天应用、实时通知、实时更新和协同编辑等场景。#ai智能作图#
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2024-12-16 19:24
瑞声 嵌入式 15×12 硕士其他
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务