第2章 C++的变量、类型及函数.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章C的变量、类型及函数

第2章 C++的变量、类型及函数 本章内容: 2.1 声明及定义 2.2 类型定义 2.3 引用类型 2.4 函数参数 2.5 函数内联 2.1 声明及定义 声明是对名及其内涵的不完整描述;定义则是对该名及其内涵的完整描述。 类型声明:前向引用声明只说明类名。 变量声明:类型、变量名。 函数声明:只说明函数原型,包括函数名、返回类型以及函数参数。 名可以声明多次,但只能定义一次。 2.1 声明及定义 C语言: 变量声明和定义必须在语句之前。 一般只允许以常量表达式初始化变量。 局部非静态变量可以用任意表达式初始化。 C++语言: 变量声明和定义不必在语句之前。 所有变量都可以用任意表达式初始化。 局部非静态变量如不初试化,其值不确定。 2.1 声明及定义 常量表达式:在编译时可计算出常量值。 3;3.14*3*3;//圆面积公式,含义明确,不降低效率 sizeof 2;sizeof(int[2]);sizeof(3+printf(“ABC”)) 任意表达式:只能在运行时计算出值,可以由常量、变量、函数调用等组成。 A; 3+A; printf(“ABCDEF”);3+printf(“ABCDEF”) 注意:int[2]是类型表达式,而非数值表达式。数值表达式包括常量表达式和任意表达式,可以分为左值表达式和右值表达式。 2.1 声明及定义 左值表达式:可以出现在等号左边的值表达式。 非只读类型的变量:int x; x=2; 引用非只读类型的变量:int y=x; y=3; 指向非只读单元的内容访问:int *p=x; *p=1; p=“ab” 引用非只读类型的函数:int f( ){ }; f( )=3; 前置++和--运算、赋值运算:(++x)=5; (x+=2)=3; 右值表达式:只能出现在等号右边的值表达式。 左值表达式是右值表达式,反之不成立;某些变量或参数传递只能用左值表达式:如非只读类型的引用变量或参数。 2.1 声明及定义 【例2.1】C++的声明、定义及初试化。 2.1 声明及定义 关于局部数组:局部静态数组在数据段分配空间;局部自动数组在栈段分配空间;在C++中初始化局部自动数组还会在数据段分配空间。 2.1 声明及定义 简单类型全局变量: 若初始化表达式是任意表达式,则初始值由编译生成的开工函数在运行时计算得到。 复杂类型全局变量: 即全局对象,其初始化由开工函数调用其相应的构造函数完成。 注意:开工函数先于main执行,收工函数后于main执行。收工函数自动执行全局对象的析构函数。因此,程序被看作一个对象,有构造(产生),活动(main),析构(消亡)。 2.1 声明及定义 【例2.3】输入整数n,计算并打印1到n的累加和。 #include iostream.h long sum(void){ int m, n, s=0; coutPlease input:; for(cinn,m=1; m=n; m++) s+=m; cout\nSum=s; return s; } long x=sum( ); //开工函数初始化x调用sum void main(void){ } //空函数有运行结果 2.2 类型定义 根据优先级和结合性解释类型: 先解释优先级较高的运算符; 优先级相同时则按结合性顺序解释。 常用于类型定义的运算符: 星号*、括号( )、函数( )、数组下标[ ]; 成员指针运算符.*和-* 。 注意: [ ][ ]的结合性从左至右;**, *的结合性从右至左。 2.2 类型定义 char ( f )(int); 两个( ),第一个为括号(f),第二个为函数(int),优先级相同,根据结合性从左至右解释; 先解释左边的(f),(f)定义了标识符f; 再解释(int)说明f是一个有int参数的函数; 最后解释char,说明函数f的返回字符型; 此例中(f)没有实质性的作用,上述定义等价于char f(int)。但如果(f)为(*f),在可以提高*解释的优先级。 2.2 类型定义 char ( *f )(int); (*f )和(int)的优先级相同,两个( )的结合性为自左向右,先解释(*f )再解释(int)。 f是一个指针;该指针指向一个函数; 该函数有一个int类型的参数; 该函数返回一个char类型的值。 char *f (int); *的优先级低于(int),先解释f(int)再解释*。 f是一个函数;函数有一个int类型的参数; 该函数返回一个指针类型的值; 该指针指向一个字符char。 2.2 类型定义 括号可提高被解释对象的优先级,根据实际情况适当时

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档