在C函数中改变全局变量可以通过以下几种方式实现:
#include <stdio.h>
int globalVar = 10;
void changeGlobalVar(int* ptr) {
*ptr = 20;
}
int main() {
printf("Before change: %d\n", globalVar);
changeGlobalVar(&globalVar);
printf("After change: %d\n", globalVar);
return 0;
}
输出结果:
Before change: 10
After change: 20
#include <stdio.h>
extern int globalVar;
void changeGlobalVar() {
globalVar = 30;
}
int globalVar = 10;
int main() {
printf("Before change: %d\n", globalVar);
changeGlobalVar();
printf("After change: %d\n", globalVar);
return 0;
}
输出结果:
Before change: 10
After change: 30
#include <stdio.h>
int globalVar = 10;
void changeGlobalVar(int& ref) {
ref = 40;
}
int main() {
printf("Before change: %d\n", globalVar);
changeGlobalVar(globalVar);
printf("After change: %d\n", globalVar);
return 0;
}
输出结果:
Before change: 10
After change: 40
需要注意的是,在多线程或多进程环境中修改全局变量时,需要考虑线程安全和同步的问题,可以使用互斥锁等机制来保证数据的一致性。
领取专属 10元无门槛券
手把手带您无忧上云