C ++程序到C程序的转换要了解C ++的this指针,我们首先可以将以下C ++代码转换为C代码:C语言没有类定义class关键字,但是有一个类似于class的定义,即struct结构体。

m_price变量是Car类的成员变量,因此我们可以将Car类和成员变量转换为以下C代码:SetPrice函数是Car类的成员函数,但是没有成员函数的这种概念在C程序中,因此我们只能将成员函数转换为全局函数:为什么要添加指向此函数的指针?让我们继续阅读。

在这里,我们将上述C ++程序的主要功能转换为C程序,如下所示:因此,最终将上述C ++程序转换为C程序的代码如下:因此,将this指针作为第一个添加的目的SetPrice函数的参数是在结构的Car字段中给出变量分配。

this指针的作用它的作用是指向成员函数所作用的对象,因此可以直接在非静态成员函数中使用它来表示该函数所作用的对象的指针。

下面的示例可以很好地说明其作用:输出结果:20000 20000接下来,我们看下面的代码,您认为输出结果是什么?会出错吗?答案是正常输出问候。

您可能对p指针为空这一事实感到好奇。

程序是否应该崩溃?不用担心,我们首先可以将上述代码转换为C程序,以了解其正常工作的原因。

因此,实际上,默认情况下,每个成员函数的第一个参数都有一个指向该对象的this指针。

在上述情况下,如果此指针指向的对象为空,则等于成员函数的第一个参数为NULL,则只要该成员不使用成员变量即可正常执行。

然后,当执行以下代码时,它将崩溃,因为this指针为空,并且如果使用空指针指向成员变量i,则程序将崩溃。