2014年c++语言程序设计1-6章.pptVIP

  1. 1、本文档共266页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
变量的作用域和生存期 根据变量的作用域不同,将变量分为全局变量和局部变量 * 1、全局变量 定义于函数外部的变量称为全局变量 全局变量具有静态生存期,存在于应用程序的整个运行期间,是一种静态变量。 一切静态变量,若定义时未进行初始化,则自动被初始化为0 * 全局变量定义时不加static,则具有跨文件作用域 全局变量定义时加static,则具有文件作用域 跨文件作用域的变量在被同一系统的其他程序文件访问前,须用extern对该变量进行说明,即外部说明( extern说明) 如extern int var; * 2、局部变量 定义于函数内部的变量称为局部变量 局部变量具有块作用域,即只允许定义该变量的复合语句中的语句访问该变量。 * 例 Int a=3,b=5; Main() {……} F1() {……} Int x,y; F2() {……} * 三种局部变量 auto修饰的变量称为自动变量 是一种默认的变量,不加修饰即定义为自动变量 regiser修饰的变量称为寄存器变量 这种变量的数据存于寄存器中,存取速度快 只有int型变量才能定义为寄存器变量 static修饰的局部变量是一种静态局部变量 具有静态生存周期,未初始化则初值为0 这种变量用于函数在本次调用与下一次调用之间交换数据信息 * 例5.9 设计一个计数器counter,每调用一次,计数器增1,并返回计数器的值;若调用时给出参数RESET,则计数器归0。 #includeiostream.h #define RESET true unsigned counter(bool reset=!RESET){ static unsigned cnt=0; if(reset) return cnt=0; return ++cnt; } void main( ){ cout‘ ‘counter( ); //第一次调用后cnt值为1 cout‘ ‘counter( ); //第二次调用前cnt值为1,再 次调用,继续加1 cout‘ ‘counter( ); cout‘ ‘counter(RESET); cout‘ ‘counter( ); cout‘ ‘counter( ); cout‘ ‘counter( ); } 程序的输出是: 1 2 3 0 1 2 3 * Main() { Void increment(void) Increment(); Increment(); Increment();} Void increment(void) {int x=0;(auto) x++; Coutx; } Main() { Void increment(void) Increment(); Increment(); Increment();} Void increment(void) {static int x=0;(auto) x++; Coutx; } * 5.8 函数模板 函数模板就是一系列相关函数定义的模型或样板 函数模板的说明格式: Template 模板形参表函数定义 例: Template class T //T是一个虚拟类型参数,用class修饰 T MAX(T x , T y) { return (xy)?x:y } * 函数模板的实例化 函数模板可直接调用,且可返回函数结果,例:coutmax(3,5.0) 编译系统处理函数模板的过程:首先依据调用的实在参数的情况生成适当的调用代码,并生成相应版本的函数定义(即函数模板的实例化),最后实参传递给相应版本的函数,返回函数结果。 也可在调用时进行强制实例化 例:coutMaxint(3,5.0) * 例:见书139 * 第六章 指针、引用和动态空间管理 * 6.1 指针的概念和指针变量的定义 指针的概念 内存空间是顺序排列的以字节为单位的存储单元 对内存空间的存储单元编号即地址 变量名实际上是某个存储单元的名字,对变量的存取就是对该存储单元进行存取。 存储单元也可以用它的地址进行存取,由于地址指明了数据存储的位置,因此形象地称之为指针,该地址存放的数据称之为“指针所指向的数据” * 指针 指针与地址有概念上的区别,指针是有特定数据类型的,而地址就是存储单元的编号,无数据类型。 指针的类型就是指针所指向的数据的类型,例如double型指针就是只能用于指向double型数据的指针 无类型指针(void指针),可用来指向任何类型的数据的指针 * 指针变量的定义和初始化 指针变量是专门用于存放地址的变量 定义格式: 类型修饰符*变量名=指针表达式 例: int * t ;//定义了一个整型指针变量t double * pn , * ph; //

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档