一、结构
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;
}