C++ 结构体指针访问示例:运行结果解析
C++ 结构体指针访问示例:运行结果解析
源代码:
#include <iostream.h>
struct abc{
int a, *b;
}*p;
int x[] = {6,7}, y[] = {8,9};
void main()
{
abc a[] = {20, x, 30, y};
p = a;
cout << *p->b << endl;
cout << (*p).a << endl;
cout << (++p)->a << endl;
cout << ++(*p).a << endl;
}
运行结果:
6 20 30 31
代码解析:
- 结构体定义:
struct abc定义了一个结构体,包含两个成员变量:a是一个整数,b是一个指向整数的指针。 - 结构体数组:
abc a[] = {20, x, 30, y};定义了一个包含两个结构体元素的数组,每个结构体元素分别包含一个整数和一个指向整数数组的指针。 - 指针赋值:
p = a;将指针p指向数组a的第一个元素。 - 访问成员变量:
*p->b:首先p->b获取p指向的结构体元素的b成员,即指向x数组的指针,然后*取其指向的值,即x数组的第一个元素6。(*p).a:获取p指向的结构体元素的a成员,即20。(++p)->a:先将指针p移动到数组a的第二个元素,然后获取其a成员,即30。++(*p).a:先获取p指向的结构体元素的a成员,即30,然后对其进行自增,结果为31。
总结:
这段代码展示了如何通过指针访问结构体数组的成员变量,并演示了指针运算和成员变量的访问方法。
原文地址: https://www.cveoy.top/t/topic/n7qz 著作权归作者所有。请勿转载和采集!