C 在函数外部更改静态变量的值
我的任务是尝试在C中的函数之外更改静态变量的值 我看过一些关于这个话题的帖子,特别是这篇帖子的一些评论: 有一条评论说,通过引用/指针参数传递变量或通过引用返回,但我觉得我缺乏实现这一点的理解 我对静态变量的理解是,变量的内存只分配一次,当变量超出范围时不会释放。根据,函数中的静态变量在调用之间保留其值,并且仅在声明它的文件中可见。我设置了一个基本示例来说明静态变量的传统用法:C 在函数外部更改静态变量的值,c,pointers,reference,static,C,Pointers,Reference,Static,我的任务是尝试在C中的函数之外更改静态变量的值 我看过一些关于这个话题的帖子,特别是这篇帖子的一些评论: 有一条评论说,通过引用/指针参数传递变量或通过引用返回,但我觉得我缺乏实现这一点的理解 我对静态变量的理解是,变量的内存只分配一次,当变量超出范围时不会释放。根据,函数中的静态变量在调用之间保留其值,并且仅在声明它的文件中可见。我设置了一个基本示例来说明静态变量的传统用法: int myFunction(); void main() { printf("%d ", myF
int myFunction();
void main() {
printf("%d ", myFunction());
// console should show value of 1
printf("%d ", myFunction());
// console should show value of 2
printf("%d ", myFunction());
// console should show value of 3
return 0;
}
int myFunction() {
static int counter = 0;
counter++;
return counter;
}
使函数返回变量的地址
int* myFunction() {
static int counter = 0;
counter++;
return &counter;
}
然后,主要可以使用以下功能:
int* ptr = myFunction();
*ptr = 0; // reset counter back to zero