this是不是非静态成员函数的隐藏形参
时间: 2023-10-21 10:03:46 浏览: 52
是的,this指针是非静态成员函数的一个隐藏形参。当调用非静态成员函数时,编译器会自动将当前对象的地址作为this指针传递给函数。这样,在非静态成员函数内部,就可以通过this指针来访问当前对象的成员变量和成员函数。this指针在函数内部是一个常量指针,不能被修改。它的类型是指向类类型的指针,且不需要显式声明和使用,编译器会自动处理。
相关问题
指针和同名函数当形参
指针和同名函数作为形参时,它们可以在函数内部使用。指针作为形参时,可以使用该指针来访问指向的对象,并对其进行操作。同名函数作为形参时,可以在函数内部调用该同名函数。这可以通过函数指针或函数引用来实现。
使用指针作为形参时,可以通过解引用操作符(*)来访问指针指向的对象,或者使用箭头操作符(->)来访问指向的类成员。同名函数作为形参时,可以直接调用该函数,就像调用普通函数一样。
关于您提到的在函数中使用同名指针对象的情况,可能是因为在函数中对CanBus_RecvBuf进行了一些操作,导致了数据出错的情况。具体的原因需要进一步分析代码和调试。
c语言的函数指针作为函数的形参
C语言的函数指针可以作为函数的形参,这样可以让函数接受其他函数的地址作为参数,从而实现在函数间传递函数的功能。函数指针作为函数的形参需要指定参数的类型和返回值的类型,这样才能正确地传递函数的地址和调用函数。函数指针作为形参的语法如下:
```
void function_name(int (*ptr)(int, int)) {
// function body
}
```
其中,`ptr`是一个函数指针,它可以指向接受两个`int`类型参数并返回`int`类型的函数。在函数内部,可以通过调用`ptr`来调用传递进来的函数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)