结构体定义使用

点击查看代码
#include <iostream>
using namespace std;

struct TEST1 { //结构体类型为TEST1
	int data1;
	double data2;
};

struct TEST2 { //结构体类型为TEST2
	int data1;
	//TEST2 data2; //错误,结构体内不能包含本类型的成员
	struct TEST2* p1; //正确,结构体内可以包含指向本类型的指针,指针p1不属于TEST2类型,而是指向TEST2类型的指针
};

int main() {
	TEST1 test1 = { 1,2.5 };//TEST1类型对象test1,初始化两个成员分别为1、2.5
	//使用句点访问结构体成员
	cout << "test1.data1=" << test1.data1 << "  test1.data2=" << test1.data2 << endl;
	
	TEST2 test2 = { 2,nullptr }; //TEST2类型对象test2
	cout << "test2.data1=" << test2.data1 << "  test2.p1=" << test2.p1 << endl;

	TEST2 test3 = { 3,&test2 }; //TEST2类型对象test3。test3.p1=&test2,test3的指针成员p1指向test2
	cout << "test3.data1=" << test3.data1 << "  test3.p1=" << test3.p1 <<endl
		<< "*(test3.p1).data1=test2.data1=" << (*test3.p1).data1 << endl //要对指针p1先解除引用才能用句点访问成员
		<< "(test3.p1)->data1=test2.data1=" << (test3.p1)->data1 << endl;//使用间接成员访问符->则不用对指针p1解除引用
	return 0;
}

posted @ 2022-09-30 23:07  zhaoo_o  阅读(3)  评论(0编辑  收藏  举报