- 1、本文档共89页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
*4.11、变量的存储类别---静态存储方式全局变量实现了函数之间共享数据,也使得变量不再会因为某个函数的结束而消亡。但是,新问题又出现了:一个密码检测函数根据调用(用户输错密码)的次数来限制他进入系统。如果把调用次数存放在一个局部变量里,显然是不可行的。虽然全局变量可以记录一个函数的运行次数,但是这个变量是被所有函数共享的,每个函数都能修改它,实在很危险。我们现在需要的是一个函数运行结束后不会消失的,并且其他函数无法访问的变量。*4.11、变量的存储类别---静态存储方式C++中,我们可以在函数体内声明一个静态局部变量(StaticLocalVariable)。它在函数运行结束后不会消失,并且只有声明它的函数中能够使用它。声明一个静态局部变量的方法是在声明局部变量前加上static,例如:staticinta;和全局变量类似,如果我们没有对一个静态局部变量做初始化,则编译器会自动将它初始化为0。下面,我们就用静态局部变量来模拟一下这个密码检测函数的功能:(程序4.11.1)*4.11、变量的存储类别---静态存储方式#includeiostream#includestdlibUsingnamespacestd;boolpassword();//密码检测函数intmain(){do{}while(password()!=true);//反复检测密码直到密码正确cout欢迎您进入系统!endl;return0;}*4.11、变量的存储类别---静态存储方式boolpassword(){ staticintnumOfRun=0;//声明静态局部变量存放函数调用次数 if(numOfRun3) { intpsw; cout第++numOfRun次输入密码endl; cinpsw; if(psw==123456) { returntrue; }*4.11、变量的存储类别---静态存储方式 else { cout密码错误!endl; returnfalse; } }else{cout您已经输错密码三次!异常退出!endl;exit(0);//退出程序运行}}*4.11、变量的存储类别---静态存储方式使用静态局部变量可以让函数产生的数据更长期更安全地存储。如果一个函数运行和它以前的运行结果有关,那么一般我们就会使用静态局部变量。*4.12、预处理命令C++提供的预处理功能主要有以下3种:(1)宏定义(2)文件包含(3)条件编译分别用宏定义命令、文件包含命令、条件编译命令来实现。为了与一般C++语句相区别,这些命令以符号“#”开头,而且末尾不包含分号。*4.12.1、宏定义可以用#define命令将一个指定的标识符(即宏名)来代表一个字符串。定义宏的作用一般是用一个短的名字代表一个长的字符串。它的一般形式为#define标识符字符串这就是已经介绍过的定义符号常量。如#definePI3.1415926*4.12.1、宏定义还可以用#define命令定义带参数的宏定义。其定义的一般形式为#define宏名(参数表)字符串如#defineS(a,b)a*b//定义宏S(矩形面积),a、b为宏的参数使用的形式如下:area=S(3,2)由于C++增加了内置函数(inline),比用带参数的宏定义更方便,因此在C++中基本上已不再用#define命令定义宏了,主要用于条件编译中。*4.12.3、条件编译一般情况下,在进行编译时对源程序中的每一行都要编译。但是有时希望程序中某一部分内容只在满足一定条件时才进行编译,也就是指定对程序中的一部分内容进行编译的条件。如果不满足这个条件,就不编译这部分内容。这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。条件编译命令常用的有以下形式:*4.12.3、条件编译(1)#ifdef标识符程序段1#else程序段2#endif它的作用是当所指定的标识符已经被#define命令定义过,则在程序编译阶段只编译程序段1,否则编译程序段2。#endif用来限定#ifdef命令的范围。其中#else部分也可以没有。*4.12.3、条件编译(2)#if表达式程序段1#else程序段2#endif它的作用是当
您可能关注的文档
最近下载
- 精品解析:广东省广州市越秀区第二中学2022-2023学年七年级上学期期中考试英语试题(解析版).docx VIP
- 江南快速 西威+TOMCB+LCB2原理图.pdf
- 城市人行天桥与人行地道技术规范(征求意见稿).doc
- 津津有味·读经典Level1《格林童话选》译文和答案.docx
- 金融企业会计第三版孟艳琼习题答案.doc
- 各层级护士考核内容及评价标准.pdf
- 津津有味·读经典Level1《柳林风声》译文和答案.pdf
- 【西门子】SINUMERIK 840D sl 操作组件 - TCU 30.3.pdf
- 第17课《昆明的雨》说课课件.pptx VIP
- 倾斜摄影测量实景三维建模技术规程.pdf VIP
文档评论(0)