#include<iostream>
using namespace std;
int main(){
int a,b,k;
while(cin>>a>>b){
k=a+b;
if(a!=0&&b!=0){
int k;
k=a-b;
cout<<k<<endl;
}
cout<<k<<endl;
}
}
1.这两次定义变量k怎么解释?
2.为什么可以定义两次?
(1)都是变量,第一个是记录a+b的和,第二个记录a-b的差
(2)因为第二个k的作用域在if语句中,出了if语句后就失效了。第7行和13行的k使用的是第5行声明的k。
因为作用域不同,所以可以申请两次。
第5行的k的作用域是整个main函数。
第9行的k的作用域只有9-11行。
在9-11行内,优先使用局部变量,也就是优先使用第9行定义的k
如有帮助,请采纳一下,谢谢。
2个k的作用域不同。
第一个k在整个main里都有效。
第二个k只在if的{}范围内有效,从if出去后这个k就被销毁了。
外层k在main范围内有效,内层k只在if语句内有效,且覆盖外层k在if语句内的作用