//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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY