qt 形参为函数指针
时间: 2023-10-21 12:54:31 浏览: 100
在 Qt 中,形参为函数指针的情况可以通过使用`typedef`来简化。下面是一个示例:
```cpp
#include <iostream>
// 定义一个函数指针类型
typedef void (*MyFunctionPtr)(int);
// 使用函数指针作为形参
void doSomething(MyFunctionPtr func, int value)
{
func(value);
}
// 函数指针对应的具体函数
void printValue(int value)
{
std::cout << "Value is: " << value << std::endl;
}
int main()
{
// 调用 doSomething 函数,并传入函数指针和参数
doSomething(printValue, 42);
return 0;
}
```
在上面的示例中,`MyFunctionPtr`是一个函数指针类型,它指向一个接受一个整数参数并返回空类型的函数。`doSomething`函数接受一个函数指针和一个整数参数,然后调用该函数指针所指向的函数,并传入参数。
在`main`函数中,我们将`printValue`函数的函数指针作为参数传递给`doSomething`函数,并传入整数值42。`doSomething`函数将会调用`printValue(42)`,并输出"Value is: 42"。
相关问题
c++1.用数组作为函数形参实现函数,函数调用时实参为数组。 2.用数组作为函数形参实现函数,函数调用时实参为指针。 3.用指针作为函数形参实现函数,函数调用时实参为数组。 用指针作为函数形参实现函数,函数调用时实参为指针。
1. 用数组作为函数形参实现函数,函数调用时实参为数组:
```c
void func(int arr[], int size) {
// 函数体
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
func(arr, 5);
return 0;
}
```
2. 用数组作为函数形参实现函数,函数调用时实参为指针:
```c
void func(int *arr, int size) {
// 函数体
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
func(arr, 5);
return 0;
}
```
3. 用指针作为函数形参实现函数,函数调用时实参为数组:
```c
void func(int *arr, int size) {
// 函数体
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
func(&arr[0], 5);
return 0;
}
```
4. 用指针作为函数形参实现函数,函数调用时实参为指针:
```c
void func(int *arr, int size) {
// 函数体
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
func(arr, 5);
return 0;
}
```
注意,指针和数组在函数传参时有一些细微的差别,需要注意。
结构体指针函数 形参为结构体指针 c语言程序例子
结构体指针函数是指函数的形参为结构体指针。通过使用结构体指针作为函数的形参,可以在函数内部对结构体进行修改,从而实现对结构体的操作。下面是一个C语言程序的例子,演示了结构体指针函数的用法:
```c
#include <stdio.h>
// 定义一个结构体
struct Student {
char name[20];
int age;
};
// 结构体指针函数,修改结构体的值
void modifyStudent(struct Student *ptr) {
// 修改结构体的值
strcpy(ptr->name, "John");
ptr->age = 20;
}
int main() {
// 定义一个结构体变量
struct Student s;
// 调用结构体指针函数,传递结构体指针作为参数
modifyStudent(&s);
// 输出修改后的结构体的值
printf("Name: %s\n", s.name); // 输出:Name: John
printf("Age: %d\n", s.age); // 输出:Age: 20
return 0;
}
```
在上面的例子中,我们定义了一个结构体`Student`,包含了姓名和年龄两个成员变量。然后我们定义了一个结构体指针函数`modifyStudent`,该函数的形参为结构体指针`ptr`。在函数内部,我们通过指针修改了结构体的值。最后,在`main`函数中,我们创建了一个结构体变量`s`,并将其地址传递给`modifyStudent`函数进行修改。最终,我们输出了修改后的结构体的值。
阅读全文