【C++学习笔记】类型组合

一、结构

1、创建结构

struct antarctica_years_end
{
	int year;
}

2、创建结构的变量

antarctica_years_end s01,s02,s03;

3、使用运算符访问其成员

s01.year = 1998;

4、创建指向结构的指针

antarctica_years_end * pa = &s02;

5、将该指针设置为有效地址后,使用间接成员运算符来访问成员

pa->year = 1999;

6、可创建结构数组

antarctica_years_end trio[3];

7、使用成员运算符访问元素的成员

trio[0].year = 2003;

8、其中trio是一个数组,而trio[0]是一个结构,而trio[0].year是该结构的一个成员。由于 数组名是一个指针,因此也可使用间接成员运算符

(trio+1)->year = 2004;

9、可以创建指针数组

const antarctica_year_end * arp[3] = {&s01, &s02, &s03};

(1)访问成员

std::cout << arp[1]->year << std::endl;

(2)创建指向上述数组的指针

const antarctica_years_end ** ppa = arp;

其中arp是一个数组的名称,因此它是第一个元素的地址。但其第一个元素为指针,因此ppa是一个指针,指向一个指向const antarctica_years_end的指针。

这种声明很容易出错,因此C++11版本提供了auto

auto ppb = arp;

(3)如何使用ppa来访问数据

std::cout << (*ppa)->year << std::endl;
std::cout << (*(ppb+1))->yera << std::endl;

二、例子

#include <iostream>

struct antarctica_years_end
{
	int year;
};

int main()
{
	using namespace std;
	antarctica_years_end s01, s02, s03;
	s01.year = 1998;
	antarctica_years_end * pa = &s02;
	pa->year = 1999;
	antarctica_years_end trio[3];
	trio[0].year = 2003;
	std::cout << trio->year << std::endl;
	const antarctica_years_end * arp[3] = {&s01, &s02, &s03};
	std::cout << arp[1]->year << std::endl;
	const antarctica_years_end ** ppa = arp;
	auto ppb = arp;
	std::cout << (*ppa)->year << std::endl;
	std::cout << (*(ppb+1))->year << std::endl;
	cin.get();
	return 0;
}







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值