C语言主函数怎么样使被调用函数里的变量不被销毁,请举例说明
时间: 2023-06-02 20:01:39 浏览: 55
在C语言中,被调用函数里的变量通常是在函数执行完毕后会被销毁的。如果想要保留这些变量的值,有以下几种方法:
1. 将变量定义为静态变量。静态变量在程序执行期间都会存在,不会被销毁,可以通过函数外部访问。例如:
```
#include<stdio.h>
int func(){
static int count = 0;
count++;
return count;
}
int main(){
printf("%d\n", func()); // 输出1
printf("%d\n", func()); // 输出2
printf("%d\n", func()); // 输出3
return 0;
}
```
2. 将变量通过指针传递到函数中。如果在调用函数时将变量的地址传递给函数,函数中就可以通过指针来访问这个变量。例如:
```
#include<stdio.h>
void func(int *num){
(*num)++;
}
int main(){
int count = 0;
func(&count);
printf("%d\n", count); // 输出1
func(&count);
printf("%d\n", count); // 输出2
func(&count);
printf("%d\n", count); // 输出3
return 0;
}
```
3. 将变量定义为全局变量。全局变量在程序执行期间都会存在,不会被销毁,可以通过函数外部访问。但是全局变量容易被误修改,不够安全。例如:
```
#include<stdio.h>
int count = 0;
void func(){
count++;
}
int main(){
func();
printf("%d\n", count); // 输出1
func();
printf("%d\n", count); // 输出2
func();
printf("%d\n", count); // 输出3
return 0;
}
```