C++ 成员(点和箭头)运算符
.(点)运算符和 ->(箭头)运算符用于引用类、结构体和联合体中的各个成员。
点运算符应用于实际对象。箭头运算符用于指向对象的指针。例如,考虑以下结构 -
struct Employee { char first_name[16]; int age; } emp;
(.) 点运算符
要将值"zara"赋值给对象 emp 的 first_name 成员,可以如下编写 -
strcpy(emp.first_name, "zara");
示例
#include <iostream> #include <cstring> using namespace std; struct Employee { char first_name[20]; }; int main() { Employee emp; // 使用点运算符赋值 strcpy(emp.first_name, "zara"); cout << "First Name: " << emp.first_name << endl; return 0; }
执行时,该程序输出:
First Name: zara
(->) 箭头运算符
如果 p_emp 是指向 Employee 类型对象的指针,那么要将值"zara"赋值给对象 emp 的 first_name 成员,可以这样写:-
strcpy(p_emp->first_name, "zara");
-> 称为箭头运算符。它由减号后跟一个大于号组成。
示例
#include <iostream> #include <cstring> using namespace std; struct Employee { char first_name[20]; }; int main() { Employee emp; Employee* p_emp = &emp; // 使用箭头运算符赋值 strcpy(p_emp->first_name, "zara"); cout << "First Name: " << p_emp->first_name << endl; return 0; }
执行时,该程序输出:
First Name: zara
简而言之:要访问结构体成员,请使用点运算符。要通过指针访问结构体成员,请使用箭头运算符。