一。局部变量没有默认值(任意的)
全局变量的默认值为0;
函数的参数就是局部变量,值能作用于整个函数。
二。如果一个局部变量和一个全局变量同名,可以使用::运算符来访问全局变量。
::称为一元作用域解析运算符。
如:
#include <iostream>
using namespace std;
int i = 10;
void main()
{
int i = 5;
cout<<"局部变量i="<<i<<endl;
cout<<"全局变量i="<<::i<<endl;
}
三。应尽量少的使用全局变量
应尽量少的使用全局变量,原因:全局变量虽然看上去很有吸引力,但是这是一种不好的编程习惯,由于所有函数都可以改变全局变量的值,这可能导致难以调试的错误,
所以,应尽量少使用全局变量,
使用全局常量是美问题的,因为常量不会被改变。
四。for循环中变量的作用域
1)一个变量如果声明在for循环的开头的初始化动作中,则其覆盖于整个循环(函数)
2)但是一个变量,如果在for循环的循环体内声明,则其作用于循环体内部。
3)在非嵌套的循环中,都声明i是可以的
如:
for (int i =0 ;i<100;i++)
{
cout<<getRandomLowerCaseLetter()<<" ";
}
for (int i =1 ;i<50;i++)
{
cout<<getRandomLowerCaseLetter()<<" ";
}
4)在嵌套的循环中,都声明i是不允许的,
因为-----一个变量如果声明在for循环的开头的初始化动作中,则其覆盖于整个循环(函数)