温州营销网站制作报价,用cms织梦做网站图文教程,专业做域名的网站,广告牌C 程序到 C 程序的翻译 要想理解 C 的 this 指针#xff0c;我们可以先把下面的 C 代码转换成 C 代码#xff1a;C 语言是没有类定义 class 关键词#xff0c;但是有跟 class 类似的定义#xff0c;那就是 struct 结构体。m_price 变量是 Car 类的成员变量#xff0c;那… C 程序到 C 程序的翻译 要想理解 C 的 this 指针我们可以先把下面的 C 代码转换成 C 代码C 语言是没有类定义 class 关键词但是有跟 class 类似的定义那就是 struct 结构体。m_price 变量是 Car 类的成员变量那么我们可以把 Car 类和成员变量翻译成如下的 C 代码SetPrice 函数是 Car 类的成员函数但是 C 程序里是没有成员函数这种概念的所以只能把成员函数翻译成全局的函数为什么要加个 this 的指针呢我们继续往下看。在这里我们把上面 C 程序的 main 函数翻译 C 程序是这样的所以最终把上述的 C 程序 转换成 C 程序的代码如下所以加 SetPrice 函数的第一个参数 this 指针的作用就是为了给结构体 Car 域里的变量赋值。this 指针的作用 其作用就是指向成员函数所作用的对象所以非静态成员函数中可以直接使用 this 来代表指向该函数作用的对象的指针。下面的例子可以很好的说明 this 的作用输出结果2000020000接下来我们看下面的代码你觉得输出结果是什么呢会出错吗答案是正常输出 hello你可能会好奇明明 p 指针是空的不应该是会程序奔溃吗别着急我们先把上面的代码转换 C 程序就能理解为什么能正常运行了。所以实际上每个成员函数的第一个参数默认都有个指向对象的 this 指针上述情况下如果 this 指针指向的对象是空相当于成员函数的第一个参数是 NULL那么只要成员函数没有使用到成员变量是可以正常执行。那么下面这份代码执行时就会奔溃了因为 this 指针是空的使用了空的指针指向了成员变量 i程序就会奔溃。 this 指针和静态成员函数 静态成员函数是不能使用 this 指针因为静态成员函数相当于是共享的变量不属于某个对象的变量。小结 通过将 C 程序翻译成 C 程序的方式来理解 this 指针其作用就是指向非静态成员函数所作用的对象每个成员函数的第一个参数实际上都是有个默认 this 指针参数静态成员函数是无法使用 this 指针。声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。