首页 > 代码库 > cpp

cpp

//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);}}