全局变量的指针作为参数传递给静态函数
时间: 2023-11-02 14:24:24 浏览: 154
当全局变量的指针作为参数传递给静态函数时,静态函数可以通过指针访问和修改全局变量的值。以下是一个示例:
```c++
#include <iostream>
using namespace std;
int global_var = 10;
static void static_func(int* ptr)
{
*ptr = 20;
}
int main()
{
cout << "global_var before function call: " << global_var << endl;
static_func(&global_var);
cout << "global_var after function call: " << global_var << endl;
return 0;
}
```
在这个示例中,静态函数 `static_func` 接收一个指向 `global_var` 的指针作为参数,并将其值改为 `20`。在 `main` 函数中,我们调用 `static_func` 并传递一个指向 `global_var` 的指针。输出结果如下:
```
global_var before function call: 10
global_var after function call: 20
```
可以看到,通过静态函数修改了全局变量的值。
相关问题
静态函数接收一个全局参数
静态函数可以接收全局参数,因为静态函数可以访问全局变量。在静态函数中,可以通过全局变量的名称访问全局变量的值。但是,需要注意的是,静态函数不能直接修改全局变量的值,因为全局变量是在程序的所有部分中都可见和可访问的。如果需要在静态函数中修改全局变量的值,需要使用指向全局变量的指针作为参数传递给静态函数,并在函数中通过指针修改全局变量的值。
c++ 非静态函数传参c函数
可以通过以下两种方式传参:
1. 通过函数参数传递。在非静态函数中声明一个参数类型为函数指针的变量,例如 void (*func_ptr)(int),然后在函数调用时传入一个符合该函数指针类型的函数名即可。
2. 通过全局变量传递。将函数指针声明为全局变量,在非静态函数中直接使用该变量即可。需要注意的是,全局变量的使用可能会带来代码可读性和安全性的问题,应该慎重使用。
阅读全文