C++ 结构体 总结

 

一、struct简介

二、定义结构

三、结构初始化

四、访问结构成员

五、结构数组

 六、结构作为函数参数  

七、结构指针


参考:http://www.runoob.com/cplusplus/cpp-data-structures.html

            https://blog.csdn.net/Bruce_0712/article/details/55045995


一、struct简介

struct(结构)可以定义一种复杂的数据类型来包含多种信息。由于C++内置简单数据类型只能存储一种类型的数据,对实际物理对象的描述,一种基本数据类型肯定是不够的。C++ 的结构允许用户存储不同类型的数据项。

例如,您想要记录各城市的基本情况,您可能需要设置一下属性:

name:城市名

location_x:坐标x 

location_y:坐标y

populatio:人口


二、定义结构

struct  结构体类型名 
{

    结构成员1;

    结构成员2;

    ......
}变量1;
//例如定义一个城市结构

struct City
{
    char name[20];
    double location_x;
    double location_y;
    int population;
}Beijing;

三、结构体初始化

//结构体初始化的几种方式

City Beijing = {"北京",120,45,1600};
City Shanghai {"上海",122,32,1500};
//若{}内无任何内容,则各个成员将被初始化为0
City Tianjin{};

四、访问结构体成员(.)

将几个城市的信息输出。

cout << "A市的基本信息:"<<endl
     << "    城市名:"<<Beijing.name<<endl<<"    坐标为:["        
     <<Beijing.location_x<<","<<Beijing.location_y<<"]"<<endl
     <<"    人口为:"<<Beijing.population<<endl<<endl;

cout << "B市的基本信息:"<<endl
     << "    城市名:"<<Shanghai.name<<endl<<"    坐标为:["        
     <<Shanghai.location_x<<","<<Shanghai.location_y<<"]"<<endl
     <<"    人口为:"<<Shanghai.population<<endl<<endl;

cout << "C市的基本信息:"<<endl
     << "    城市名:"<<Tianjin.name<<endl<<"    坐标为:["        
     <<Tianjin.location_x<<","<<Tianjin.location_y<<"]"<<endl
     <<"    人口为:"<<Tianjin.population<<endl<<endl;

控制台输出结果如下:

                    


五、结构数组

创建元素为结构的数组,如City city[10],这样,city就是一个City数组,每一个数组元素(city[0],city[1])都是一个City对象。

初始化结构数组:

City city[0]={"北京",120,45,2500};


六、结构作为函数参数

#include <iostream>
#include <string>
using namespace std;

void printCity(struct City city);

struct City
{
	char name[20];
	double location_x;
	double location_y;
	int population;
};


int main()
{
	City Beijing = { "北京", 120, 45, 1600 };
	City Shanghai{ "上海", 122, 32, 1500 };
	City Tianjin{};

	printCity(Beijing);
	printCity(Shanghai);
	printCity(Tianjin);
	
	return 0;
}

void printCity(struct City city)
{
	cout << "该市的基本信息:" << endl
		<< "    城市名:" << city.name << endl << "    坐标为:["
		<< city.location_x << "," << city.location_y << "]" << endl
		<< "    人口为:" << city.population << endl << endl;
}

结果如下:

                     


七、结构指针

定义结构指针:Struct City *city_pointer;

运用&取地址运算符:city_pointer = &Beijing;

访问结构成员:city_pointer->name;

#include <iostream>
#include <string>
using namespace std;

void printCity(struct City *city);

struct City
{
	char name[20];
	double location_x;
	double location_y;
	int population;
};


int main()
{
	City Beijing = { "北京", 120, 45, 1600 };
	City Shanghai{ "上海", 122, 32, 1500 };
	City Tianjin{};

	printCity(&Beijing);
	printCity(&Shanghai);
	printCity(&Tianjin);
	
	return 0;
}

void printCity(struct City *city)
{
	cout << "该市的基本信息:" << endl
		<< "    城市名:" << city->name << endl << "    坐标为:["
		<< city->location_x << "," << city->location_y << "]" << endl
		<< "    人口为:" << city->population << endl << endl;
}

结果与前面的一致。

猜你喜欢

转载自blog.csdn.net/qq_29406323/article/details/81258301