Chap2从C快速过渡到C++

Chap2从C快速过渡到C++

ID:47104498

大小:148.50 KB

页数:26页

时间:2019-08-03

Chap2从C快速过渡到C++_第1页
Chap2从C快速过渡到C++_第2页
Chap2从C快速过渡到C++_第3页
Chap2从C快速过渡到C++_第4页
Chap2从C快速过渡到C++_第5页
资源描述:

《Chap2从C快速过渡到C++》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Chap2C++的变量、类型及函数(从C快速过渡到C++)本章内容:n2.1数据类型n2.2声明及定义n2.3C++的常量与变量n2.4C++的指针n2.5引用类型n2.6C++函数Ø2.6.1函数原型Ø2.6.2函数重载Ø2.6.3函数参数Ø2.6.4内联函数重点:2.3、2.5、2.62.1数据类型(DataType)1.基本数据类型保留了C的所有基本DataType2.复杂数据类型C++采用*、&、[]、()等运算符派生出如下复杂的DataType。其中,*、&是单目运算符,放在标识符前面;[]、()是双目运算符,放在标识符后面。①数组格式:数组名[下标]例:chars[]=”a

2、bcd”;s[0]=’a’;inta[4]={1,2,3,4};②指针格式:*指针名例:int*pi;float*pf;int(*pfun)(char*,intlen);/*函数指针,表示pfun首先是一指针,该指针指向具有2个形参的函数*/③引用格式:&引用名例:inti=5;int&refi=i;④class类型(包括struct和union类型)用户自定义的一种新的DataType,用来表示客观世界某类实体的抽象数据类型(AbstractDataType-ADT)⑤常量(只读变量)C++保留了C的常量定义风格,且对它的符号常量加以扩展。如#definetabsize4óconst

3、inttabsize=4;#definePI3.1415926óconstfloatPI=3.14159262.2声明与定义声明:对某个名及其内涵的不完整描述定义:对该名及其内涵的完整描述l变量声明:不分配存储单元或不初始化的变量定义。如,externinti;//声明externinti=0;//定义l函数声明:不定义函数体的函数原型描述。如,longsum(inta,intb);//声明longsum(inta,intb)//定义{returna+b;}l注意:①对于未初始化的全局变量、静态变量,C/C++缺省地初始化为0(定义)②对于局部变量,C/C++都不会缺省初始化(声明)C

4、与C++在声明和定义时的不同:nC语言:一般只允许以常量表达式初始化变量,局部非静态变量可以用任意表达式初始化。变量声明和定义必在语句前。nC++语言:所有变量都可以用任意表达式初始化。变量声明和定义不必在语句前。兼容C,局部非静态变量如不初始化,则其值不确定。n常量表达式:编译时可计算出常量值。如:3,3.14*3*3,size2,sizeof(int[2]),sizeof(3+printf(“ABC”))n任意表达式:常量、变量、函数调用等组成。只能在运行时计算出值。如:Ø常量表达式ØA,3+AØprintf(“ABCDEF”)Ø3+printf(“ABCDEF”)注意:int[2

5、]是类型表达式,而非值表达式。值表达式包括常量表达式和任意表达式。值表达式又可分为左值或右值表达式。<参见教材【例2.1】>2.3C++的常量与变量2.3.1常量(只读变量)l常量:在程序运行期间其值不能被修改,在定义时必须初始化lC++对符号常量加以扩展,对任何类型的对象(指针变量、引用变量、结构变量、数组、class类型的对象)都可以定义成常量。l定义格式:const数据类型定义=初始值;1.基本DataType,如constintsize=100;constfloatpi=3.1415;intaryInt[size];2.数组<常量数组中每个元素值在其作用域内不能被修改>cons

6、tintdata[]={1,2,3};óintconstdata[]={1,2,3};data[1]=10;//出错3.结构变量<其内的成员值在其作用域内都不能被修改>structComplex{doublereal;doubleimage;};constComplexX={1.0,1.0};X.real=2.0;//错误X.image=3.0;//错误4.指针<涉及到两个对象:指针本身和指针所指的目标变量>①将指针所指的目标变量定义成只读——指向常量的指针constchar*pc;pc=”abcd”;定义格式:const类型*指针名[=地址表达式];//[...]可选???类型con

7、st*指针名;例:constchar*pc=”abcd”;//*pc为只读变量,不可变pc[3]=’f’;//×*pc=’a’;//×pc=”sdef”;//√指针所指存储单元的值是不可变,而指针的地址值是可以改变(即,可以重新给指针定向)。即,*pc,*(pc+1),...,pc[0],pc[1],...不可重新赋值pc可重新赋值②将指针本身定义成只读——常量指针定义格式:类型*const指针名=地址表达式;//必须在定义同时初始化例:cha

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。