//compile with:g++ sourceCode.cpp -o execAbledName
全局变量实现了函数间数据共享,使得变量不再因为某个函数的结束而消失
新问题:密码检测系统根据调用(用户输错密码)的次数来限制他进入系统
如果把调用 次数存放在一个局部变量里,显然不可行,虽然全局变量可以记录一个函数的运行次数,但是这个变量时被所有函数共享的,每个
函数都能修改它,很危险
面对上述问题迫切需要的是一个函数运行结束后不会消失,并且其他函数无法访问的变量
static local Variable 它在函数运行结束不会消失,并且只有声明它的函数才能使用
static int a;
使用静态局部变量可以让函数产生的数据更长期更安全地存储,.如果一个函数运行和它以前的运行结果有关,那么一般使用静态局部变量
密码检测系统案例
//compile with g++ passCheck.cpp -o passCheck //created byRuiy #include <iostream> #include <time.h> #include <stdlib.h> #include <iomanip> using namespace std; int main() { do{} while(password()! = true);// cout<<"Welcome to login system!"<<endl; return 0; } bool password() { static numOfRun = 0;//声明静态局部变量存放函数调用次数 if (numOfRun < 3) { int psw; cout<<"第"<<++numOfRun<<"次输入密码"<<endl; cin>>psw; if (psw == byRuiy) { return true; } else{ count<<"密码错误!"<<endl; return false; } } else { count<<"您已经输错密码三次!异常退出!"<<endl; exit(0); } }