基础的意思是a->b 或者 a->b()
相当于(*a).b 或者 (*a).b()
即取指针值再调用成员,把两个操作合并成了一个
这个运算符可以重载,所以某些类(比如STL的iterator)本身不是指针但也可以使用->运算符。
表示一个结构体的属性。比如struct student{int age; int score} cout<
访问结构体成员的方法 C\C++
1#include
2#include
3void main(){
4 typedef struct {
5 int int_field;
6 char char_field;
7 }my_struct;
8 my_struct my_s;
9 my_s.int_field=3; //结构运算符访问结构成员
10 my_struct *s;
11 s=(my_struct *)malloc (sizeof(my_struct));
12 s->int_field=4;
13 s->char_field='a';
14 (*s).int_field=6;
15 }
访问结构体成员的运算符有两种,一种是“.”即结构运算符,另一种是“->”即结构指针运算符。
结构运算符是通过结构变量名访问结构体成员的(例如例子的第9行),而结构指针运算符是通过指向结构的指针访问结构成员的(例如第12及13行)。
还可以用指针和结构运算符来访问结构(如第14行),其中(*s)中的圆括号不可以省去。
用法举例:
class CA
{
int m_a;
void fun();
};
void CA::fun()
{
}
int main(int argc, char *argv[])
{
CA *pca = new CA();
pca->fun();// 类型指针调用其成员时,用->。
}
表示一个指针对象实例调用它的方法或者数据成员.... 是怎么说吧