数组、结构、指针三者组合关系

本文通过示例代码深入解析数组、结构体和指针在C++中的交互使用,展示如何利用指针操作结构体成员及数组元素,帮助读者理解复杂的数据结构与内存管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组、结构、指针三者组合关系

通过一段代码,理解**数组、结构、指针**三者之间的关系,有助于进一步理解指针的用法,掌握指针!
#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值