在C++中,指针访问结构体成员使用箭头操作符(->)。定义结构体Student并创建实例stu及指向它的指针ptr后,通过ptr->id、ptr->name、ptr->score可修改或读取成员值,等价于(*ptr).id等形式。动态分配时也可用new创建结构体对象并通过->访问成员,最后需delete释放内存。核心规则:指针用->,对象变量用.。

在C++中,通过指针访问结构体成员使用箭头操作符(->)。这是最直接和常用的方法。当你有一个指向结构体的指针时,不能用点号(.)来访问成员,而必须使用->。
定义结构体并创建指针
先定义一个结构体类型,并声明一个结构体变量和指向它的指针:
struct Student {
int id;
char name[20];
float score;
};
Student stu = {1001, "Alice", 95.5};
Student* ptr = &stu; // 指针指向结构体变量stu
使用 -> 访问结构体成员
通过指针访问结构体中的成员变量:ptr->id = 1002; strcpy(ptr->name, "Bob"); ptr->score = 88.0;上面的cout << "ID: " << ptr->id << endl; cout << "Name: " << ptr->name << endl; cout << "Score: " << ptr->score << endl;
ptr->id等价于(*ptr).id,只是写法更简洁清晰。等价形式:解引用后用点操作符
你也可以先对指针解引用,再用点操作符访问成员:(*ptr).id = 1003;cout
*ptr.name会被解释为*(ptr.name),导致错误。动态分配结构体指针
使用new创建堆上的结构体对象:Student* dynamicPtr = new Student; dynamicPtr->id = 1004; strcpy(dynamicPtr->name, "Charlie"); dynamicPtr->score = 90.0;// 使用完记得释放内存 delete dynamicPtr;
基本上就这些。核心记住:指针访问结构体成员用 ->,变量用 .。这个规则在链表、树等数据结构中非常常见。不复杂但容易忽略细节。











