数组、结构、指针三者组合关系
通过一段代码,理解**数组、结构、指针**三者之间的关系,有助于进一步理解指针的用法,掌握指针!
#include<iostream>
using namespace std;
struct antarctica_year_end
{
int year;
}
int mian()
{
antarctica_year_end s01, s02, s03;//创建该结构的变量
s01.year = 1998;//通过成员运算符(.)来访问成员函数
antarctica_year_end *pa = &s02;//创建指向该结构的指针
pa->year = 1999;//通过间接成员运算符,访问成员变量
antarctica_year_end trio[3];//创建结构数组
trio[0].year = 2003;//通过成员运算符(.)来访问成员函数
cout << trio->year << endl;//200
const antarctica_year_end *arp[3]{ &s01,&s02,&s03 };//创建指针数组
cout << arp[1]->year << endl;//1999
const antarctica_year_end **ppa = arp;//创建指向指针数组的指针
auto ppb = arp; //C++版本的auto,正确推断出ppb的类型
cout << (*ppa)->year << endl; //1998 ppa指向arp的第一个元素,因此*ppa为第一个元素,即&s01
cout << (*(ppb+1))->year << endl; //1999 ppb+1指向下一个元素arp[2]
return 0;
}