this指针 c++详解

定义

        this 指针是 C++ 中的一个特殊指针,它指向当前对象的地址。 它可以在类的成员函数中使用,以便在函数内部访问当前对象的成员变量和成员函数。 当类的成员函数被调用时,编译器会隐式地将当前对象的地址作为一个参数传递给该函数,这个参数就是 this 指针

        this 是 c++中的一个关键字,也是一个 const 指针

作用

其作用就是指向成员函数所作用的对象

当形参和成员变量同名时,可用this指针来区分

注意,this 是一个指针,要用->来访问成员变量或成员函数

 做返回值

 

 

this指针的特性

1. this指针的类型:类类型* const
2. 只能在“成员函数”的内部使用
3. this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针。
4. this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户 传递

 注意:

  • this 是 const 指针,它的值是不能被修改的,一切企图修改该指针的操作,如赋值、递增、递减等都是不允许的。
  • this 只能在成员函数内部使用,用在其他地方没有意义,也是非法的。
  • 只有当对象被创建后 this 才有意义,因此不能在 static 成员函数中使用

面试题

1.this指针存储在哪里?

this是形参,所以它跟普通参数一样存在栈中,不过有的编译器对它做了优化,如:vs中对象的地址放在寄存器ecx中,不同的编译器情况或许略有不同,可能是栈、寄存器、全局变量。

2.this指针可以为空吗?

可以,只要我们不对它解引用就不会报错。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值