& nbsp;小林编码C ++程序到C程序的翻译为了理解C ++的this指针,我们首先可以将以下C ++代码转换为C代码:C语言没有类定义class关键字,但是有一个与类相似的定义,即struct structure。
m_price变量是Car类的成员变量,然后我们可以将Car类和成员变量转换为以下C代码:SetPrice函数是Car类的成员函数,但是没有成员函数的这种概念在C程序中,因此我们只能将成员函数转换为全局函数:为什么要添加指向此函数的指针?让我们继续阅读。
在这里,我们将上述C ++程序的主要功能转换为C程序,如下所示:因此,最终将上述C ++程序转换为C程序的代码如下:因此,将this指针作为第一个添加的目的SetPrice函数的参数是在结构的Car字段中给出变量分配。
该指针的作用它的作用是指向成员函数所作用的对象,因此可以在非静态成员函数中直接使用它来表示该函数所作用的对象的指针。
下面的示例可以很好地说明其作用:输出结果:2000020000接下来,我们看下面的代码,您认为输出结果是什么?会出错吗?答案是正常输出问候。
您可能对p指针为空这一事实感到好奇。
程序是否应该崩溃?不用担心,我们首先可以将上述代码转换为C程序,以了解其正常工作的原因。
因此,实际上,默认情况下,每个成员函数的第一个参数都有一个指向该对象的this指针。
在上述情况下,如果此指针指向的对象为空,则等于成员函数的第一个参数为NULL,则只要该成员不使用成员变量即可正常执行。
然后,当执行以下代码时,它将崩溃,因为this指针为空,并且如果使用空指针指向成员变量i,则程序将崩溃。
& nbsp;此指针和静态成员函数& nbsp;静态成员函数不能使用此指针,因为静态成员函数等效于共享变量,而不是属于对象的变量。
摘要通过将C ++程序转换为C程序,以了解this指针,其作用是指向非静态成员函数的对象,并且每个成员函数的第一个参数实际上具有默认的this指针Parameters;静态成员函数不能使用此指针。
& nbsp;小林编码看看,大家都知道