c++中 . 和 -> 的区别是什么?

主要用于访问类的成员,->主要用于类类型的指针访问的成员,而.运算符,主要用于类类型的对象访问类的成员。

举例

class A{

public:

  int a;

}

A ma;

A *p=ma;

指针p应用->来访问成员a,比如p->a,而ma应使用.来访问,比如ma.a区别就在这里,凡是指针就使用->,对象就使用.运算符。

如果定义了一个结构体数组。

struct student

{

  int age;

  char name[100];

};

struct student array[3];

通过这个数组进行调用这个结构体中的成员的时候,只能使用.而不能使用->。

如果要是让一个指针指向这个数组的话,可以使用->这个符号。

struct student *p = array;

p->age = 30;

memcpy(p->name,"刘德华");

这样是可以的。