在C/C++中 .运算符与-> 运算符的区别

class A{ 

    int value = 0;
}

    A a;
    A* p = nullptr;
	a.value; //类类型的对象访问类的成员
	p->value; //类类型的指针访问类的成员

    可以认为(*p)-> 等价于 .

    在C++中,this 是一个指针,要用->来访问成员变量或成员函数。

C++中的this指针:
C++编译器给每个“成员函数”增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。

第一种内容不能变,但地址可以变
第二种地址不能变,但值可以变,并且初定义的时候,必须给它一个指定空间
this指针的特性:
(1)只能在“成员函数”的内部使用。
(2)this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象不存储this指针。
(3)this指针是成员函数第一个隐含的指针形参,构造函数除外。
通常this指针在对象构造完毕后才完全生成,而在构造函数执行过程中,对象还没有完全生成,所以this指针也是没有完全生成的,在构造函数中使用this指针会存在问题,应该尽量避免。
(4)this指针存在栈上。

 

你可能感兴趣的:(c语言,c++,开发语言)