c++语言基础知识汇总课件

上传人:w****i 文档编号:92449846 上传时间:2019-07-10 格式:PPT 页数:68 大小:1.36MB
返回 下载 相关 举报
c++语言基础知识汇总课件_第1页
第1页 / 共68页
c++语言基础知识汇总课件_第2页
第2页 / 共68页
c++语言基础知识汇总课件_第3页
第3页 / 共68页
c++语言基础知识汇总课件_第4页
第4页 / 共68页
c++语言基础知识汇总课件_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《c++语言基础知识汇总课件》由会员分享,可在线阅读,更多相关《c++语言基础知识汇总课件(68页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 C+语言初步,本章主要内容 1.C+语言的字符集、词汇 2.基本数据类型、运算符与表达式 3.C+中的常量与变量 4.C+中的I/O 5.基本控制结构 6.数组、结构体、共用体与枚举类型 7.指针、引用与动态内存分配 8.函数与函数重载,2,1 C+语言的字符集与词汇,1.字符集,(1)字母 A B C D Z a b c d z (2)数字 0 1 2 3 4 5 6 7 8 9 (3)特殊符号 空格 ! # $ % _ | ,3,2.词汇:五类,(1)关键字(保留字):系统预定义且有专门含义的单词,不允许另作它用 .C+的关键字包含了C语言的几乎所有关键字 .C+的关键字随C+

2、的发展而不断增加 (2)标识符:由程序员为程序中的各种成份定义的名字 .以字母或_开头,由字母、_、数字组成 .不能是关键字 .C+中的标识符区分大小写 .见名知义的原则 .C+系统对标识符的长度有一定限制 (3)直接常量 (4)运算符 (5)分隔符:用来分隔不同的语法成份的单词 空格 “ ; # ( ) /* */ / *C+的两种注释: ./*/ ./ 注释到行尾,4,2 基本数据类型、运算符与表达式,一.数据类型 每一项数据都唯一的属于某种类型 每一数据类型都有一个明确定义的值的集合 每一类型的数据占用相同大小的存储空间 同一类型的数据可以进行相同类型的运算,1.C+的数据类型,基本类型

3、是由系统定义,各种语言都具备的类型,复合类型与指针类型都属于用户定义类型,5,2.基本类型,int型:整型 VC中占4字节 float型: 浮点型 4字节 char型: 字符型 1字节 void型: 空类型 bool型: 布尔型 1字节 值为 true 或 false,*修饰说明符 long与short、signed与unsigned long和short修改整型具有的最大值和最小值 signed和unsigned告诉编译器如何处理整型和字符型数据的最高位,float型可用double和long double修饰,修改实型数据的表数范围和精度,6,C+中的全部基本类型,7,二.运算符与表达式,

4、1.运算符,算术运算符:+ - * / % + - 关系运算符: = = 赋值运算符:= += -= *= /= %= = &= |= = 条件运算符: ?: 逗号运算符: , 指针运算符:& * 求字节运算符:sizeof 函数调用运算符、强制类型转换运算符:() 分量运算符: . - 数组下标运算符: 作用范围分解运算符:: 动态内存分配符:new、delete 插入提取运算符:,8,运算符的优先级与结合性,9,运算符的优先级与结合性(续表),10,C+中的类型转换,转换运算符:() 两种强制类型转换的方法: (目标类型名)表达式: float x = 2.5; int y; y = (i

5、nt)x; 目标类型名(表达式): float x = 2.5; int y; y = int(x); C+中的显式转换,使用方式 转换用关键字(待转换的表达式),11,例:static_cast,void func(int) void main() int i=0x7fff; long l; float f; l = i; f = i; /更好的方法是使用static_cast l = static_cast(i);f = static_cast(i); i = l; i= f; /以上两条语句会出Warning,可使用如下方式消除 i = static_cast(l); i = stati

6、c_cast(f); char c = static_cast(i); void *vp = /更好的方法 ,12,例:const_cast,void main() const int i = 0; /int *j = /错误,不允许同时进行const*-nonConst* /和nonConst*-long*两项转换 ,13,例:reinterpret_cast,#include using namespace std; const int sz=100; struct Xint asz; void print(X* x) for (int i=0;iai ( ,14,2.表达式,由运算符连接

7、操作数构成的式子,算术表达式 关系表达式 逻辑表达式 赋值表达式 条件表达式 逗号表达式,15,3 常量与变量,一.C+中的常量,1.直接常量(字面常量): 10,10.5,A, “string“ .int型 .float型 .char型 .字符串常量 .bool型:true、false,2.符号常量:C+中有两种符号常量 #define定义的常量 例:#define pi 3.1415926 关键字const定义的常量 例:const int sz = 100;,#define定义的常量,在预处理时只是字符串的替换,对编译器而言,不带有任何类型信息,不便于查错;而const定义的常量带有类型

8、信息,故优于#define定义的常量 C+推荐使用const定义的常量,16,const常量,定义语法: const 类型名 常量名 = 常量值; 或 类型名 const 常量名 = 常量值;,例:const float pi=3.14; float const pi=3.14; const int min=50; int const min=50; const int max=2*min; int const max=2*min;,const定义的常量,相当于定义了一个相应类型的变量,但其值不能发生改变 例:const int min = 50; min = 40; /错误,不能改变min的

9、值,所以,定义const常量的同时必须初始化,且一旦初始化后,就不会(因不能故不会)再发生变化。因此在作用范围内若某变量的值不会发生改变,则定义该变量时应用const进行限定,以免无意中改变该变量的值,const常量是编译时的常量 例:const int sz = 100; int arrsz;,17,const与指针,1.指向常量的指针:限定指针所指的对象、变量 定义形式: const 类型 * 指针变量=地址表达式; 或 类型 const * 指针变量=地址表达式;,例:int var = 35; const int max = 100; int *p; const int *p1_con

10、st; const int *p2_const; p1_const = ,p1_const和p2_const,var不是常量,*p1_const和*p2_const、max是常量,18,指向常量的指针,19,2.指针常量:指针变量本身的值初始化后不能再改变,定义方式: 类型 * const 指针变量 = 地址表达式;,例:int var1 = 100,var2 = 200; const int max = 1000; int * const cst_p1 = ,只说明了指针变量如cst_p1本身是常量,但并没有说不能改变*cst_p1的值,必须要赋初值,20,3.指向常量的指针常量,指针变量本

11、身和所指对象的值都为常量,不能改变,定义方式: const 类型 * const 指针变量 = 地址表达式; 或 类型 const * const 指针变量 = 地址表达式;,例:int var1 = 128,var2 = 256; const int max = 1000; const int *const doubleCst_p1 = ,21,二.C+中的变量,变量必须先定义(声明)再使用 变量的定义 存储类型 数据类型名 变量名列表;,C+中几乎 随处可以定义变量 例: for(int i=0;i100;i+) if(i 100) int x = 0; x += 100; int y =

12、 10; ,变量的分类:根据定义变量的位置,分为两类: 全局变量(外部变量) 局部变量(内部变量),22,变量的存储类型,存储方式:动态存储方式和静态存储方式 静态存储方式:程序运行过程中给此类变量分配固定的存储空间 动态存储方式:程序运行过程中根据需要,给此类变量动态分配存储空间,程序的存储组织,23,变量的存储类型,auto、register、static、extern和默认五种 auto:自动类型 普通的局部变量都属于此类,分配在动态存储区中 register:寄存器类型 static:静态变量 静态局部变量:在静态区中,只初始化一次,多次调用函数时能保留前一次函数调用结束时的值,延长了

13、该变量的生存期 静态全局变量:在静态区中,限制了该变量的作用域 extern:外部变量 定义全局变量 声明外部变量:扩展了全局变量的作用域,24,例:static,#include using namespace std; int factor(int n) static int result = 1; result *= n; return result; void main() for(int i=1;i=8;i+) cout factor(i) “ “; cout endl; ,25,例:extern,/main.cpp #include using namespace std; ext

14、ern int nTestVar; void main() nTestVar = 100; cout nTestVar endl; ,/test.cpp int nTestVar;,同一个工程的两个文件,26,变量的生存期与作用域,生存期:变量a的生存期指从a被说明且分配了内存开始,直到该变量占用的内存被释放为止,是时间概念 作用域:变量a的作用域指标识符a可以代表该变量的范围,是空间概念,全局变量:生存期从程序开始运行到程序运行结束,而作用域则从定义该变量的地方开始,直到本文件末尾 普通局部变量:生存期从程序执行到包含该变量定义的复合语句时开始到该复合语句执行结束,而作用域则从该变量的定义处

15、开始到包含该变量的程序块末尾 静态局部变量:生存期从为该变量分配了内存起直到程序结束,但作用域则与局部变量的作用域相同,例:生存期与作用域,27,变量的初始化,定义变量的同时给变量赋以初值 .两种方法 .例: int a=3; .例: int a(3);,28,4 C+中的输入/输出,一.输入/输出方式 1.C语言的方式: 使用scanf()、printf()等输入/输出库函数 2.使用流对象的方式 把数据从一个对象向另一个对象的流动抽象成流 流好比管道,从一端放入什么从另一端就能取出什么 C+中的流对象一般与一个文件相关联,用流对象进行输出操作相当于把要输出的数据写入文件中,进行输入操作相当

16、于从文件中读出数据存于变量或对象中 从流中获取数据的操作称为提取操作: 流对象变量 向流中添加数据的操作称为插入操作: 流对象 :提取运算符 cin和cout是C+预定义的流对象 cout:用于进行输出操作,与显示器相关联 cin:用于进行输入操作,与键盘相关联,29, 用法: cout变量1变量2变量n; 同样也可以串联多个给多个变量输入数据 输入时多个数据项之间用空格、Tab或回车分隔 具有智能,能够自动判断其后的数据项的类型,并采用相应的类型进行输出或输入,使用流对象时,必须#include相应的头文件(如iostream)并使用语句“using namespace std;”打开名称空间std cin与cout在iostream中的std名称空间中定义,30,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号