关于局部变量的恍然大悟

看了学长制作的蓝桥杯经验ppt

其中有关于局部变量的个两段代码如下:

1.正确代码

#include<iostream>
#include<stdlib.h>
using namespace std;
int main(){
	int n;
	while(scanf("%d",&n)==1){
		int res=-1e9;
		for(int i=0;i<n;i++){
			int tmp;
			scanf("%d",&tmp);
			res=max(res,tmp);
		}
		printf("%d",res);
	}
	return 0;
}


2.不正确代码:

#include<iostream>
#include<stdlib.h>
using namespace std;
int main(){
	int n;
	int res=-1e9;
	while(scanf("%d",&n)==1){
		for(int i=0;i<n;i++){
			int tmp;
			scanf("%d",&tmp);
			res=max(res,tmp);
		}
		printf("%d",res);
	}
	return 0;
}
结果虽然都是一样的,但区别在一个res是局部变量(while循环结束后res被释放),一个res是main函数中的全局变量,由于res定义的值很大,所以定义成局部变量比较好。。。吧,应该是这样emmm

猜你喜欢

转载自blog.csdn.net/qq_37910848/article/details/79252129