c++入门之初话指针
先上代码:再进行总结知识:
1 # include "iostream" 2 struct ant_year_end 3 { 4 int year; 5 }; 6 7 int main() 8 { 9 using namespace std; 10 ant_year_end s1, s2, s3; 11 s1.year = 1998; 12 ant_year_end *point = &s2; 13 point->year = 1999; 14 ant_year_end trio[3]; 15 trio[0].year = 2003; 16 cout << trio->year << endl; 17 const ant_year_end*arp[3] = { &s1, &s2, &s3 }; 18 cout << arp[1]->year<< endl; 19 const ant_year_end**ppa = arp; 20 auto ppb = ppa; 21 cout << (*ppa)->year << endl; 22 cout << (*(ppa + 1))->year << endl; 23 system("pause"); 24 return 0; 25 }
上段代码中,包含了几个重要的方面:
1 s1,s2,s3为结构体变量名,通过结构体变量名来访问结构体成员的方法是:结构体变量名.(这里有点)结构体成员。
2 point 为结构体指针 变量名,该变量存储了结构体变量s2的地址,即本质上,point指向了s2这个结构体。因此通过结构体指针来访问结构体变量成员的方法是 :
结构体指针->结构体成员。
3 trio是结构体数组,结构体数组访问成员的办法是:数组元[].结构体成员.即我们发现,采用变量名(无论是单个结构体变变量,还是数组形式),都采用.(点)的方式。
4 arp[3]是结构体指针数组,即本质是指针数组,即数组的每个元素都是指针,每个指针元素指向了之前的结构体变量,因此,访问结构体成员的方式为:结构体指针->成员名
5 ppa为指向指针的指针,本质上,这个变量是个指针,这个指针的内容,装的仍然是一个指针,访问结构体成员的方式:(*最外层指针)->结构体成员。
总结:
通过结构体变量名访问成员的方式是.(点),通过结构体指针(无论是多少层)访问成员的方式是->。
无论是多少层指针,他们在逻辑上是统一的,我们通过访问成员的方式可以发信这一点。
stay foolish,stay hungry