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

代码解析:

  1. 结构体定义:struct abc 定义了一个结构体,包含两个成员变量:a 是一个整数,b 是一个指向整数的指针。
  2. 结构体数组:abc a[] = {20, x, 30, y}; 定义了一个包含两个结构体元素的数组,每个结构体元素分别包含一个整数和一个指向整数数组的指针。
  3. 指针赋值:p = a; 将指针 p 指向数组 a 的第一个元素。
  4. 访问成员变量:
    • *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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录