- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
02--c++语言程序设计
展开查看详情
1 .C++语言程序设计 第二章 C++语言
2 .C++语言程序设计 本章主要内容 C++语言概述 基本数据类型 运算表达式 算法的基本控制结构 自定义数据类型 2
3 .C++语言程序设计 C++语言的产生 C++是从C语言发展演变而来的,首先是一个 C++ 更好的C 语 引入了类的机制,最初的C++被称为“带类 的C” 言 1983年正式取名为C++ 概 从1989年开始C++语言的标准化工作 述 于1994年制定了ANSI C++标准草案 于1998年11月被国际标准化组织(ISO)批 准为国际标准,成为目前的C++ 3
4 .C++语言程序设计 C++的特点 C++ 全面兼容C –它保持了C的简洁、高效和接近汇编语言 语 等特点 言 –对C的类型系统进行了改革和扩充 概 –C++也支持面向过程的程序设计,不是一 述 个纯正的面向对象的语言 支持面向对象的方法 4
5 .C++语言程序设计 C++字符集 C++ 大小写的英文字母:A~Z,a~z 数字字符:0~9 语 言 特殊字符: 概 空格 ! # % ^ & * _(下划线) + = - ~ < 述 > / \ ' " ; . , () [] {} 5
6 .C++语言程序设计 词法记号 关键字 C++ C++预定义的单词 标识符 程序员声明的单词,它命名程序正文中 语 的一些实体 言 文字 在程序中直接使用符号表示的数据 操作符 用于实现各种运算的符号 概 分隔符 () {} , : ; 述 用于分隔各个词法记号或程序正文 空白符 空格、制表符(TAB键产生的字符)、 换行符(Enter键所产生的字符)和注释的总称 6
7 .C++语言程序设计 标识符的构成规则 C++ 以大写字母、小写字母或下划线(_)开 始。 语 言 可以由以大写字母、小写字母、下划 概 线(_)或数字0~9组成。 述 大写字母和小写字母代表不同的标识 符。 7
8 .C++语言程序设计 输入与输出 #include <iostream> 基 using namespace std; int main() 本 { 变量 变量? 数 int n; cout << "Hello world!" << endl; 据 cin >> n; 类 cout << "Power is " << n*n << endl; 型 } 变量? 变量? 8
9 .C++语言程序设计 对象 一个对象就是一段内存,由指定类型的某个值来填充 一个变量是一个对象的名称 声明语句用于给一个对象取名 int a = 7; a: 7 char c = 'x'; c: 'x' 类型 complex<double> z(1.0,2.0); string s = "qwerty"; z: 1.0 2.0 存储 空间 s: 6 "qwerty"
10 .C++语言程序设计 数据类型 —整型数据及取值范围 基 类型 说明符 位数 数值范围 本 短整 short 16 -32768~32767 数 基本 int 32 -231~(231-1) 据 长整 long 32 -231~(231-1) 类 无符号 型 unsigned short 16 0~65535 unsigned [int] 32 0~(232-1) unsigned long 32 0~(232-1) 10
11 .C++语言程序设计 数据类型 ——实型数据 #include <iostream> 基 using namespace std; int main() 本 实型变量 { 默认为double型 数 float 4字节 const int PRICE=30;后缀 F(或 f) int num,total; 据 精度:3.4×10±38 float v ,r,h; 为 float型 后缀 L(或 l) 类 7位有效数字 double 8字节 num=10; total=num*PRICE; 为 long double 型 精度:1.7×10±308 cout<<total<<endl; 型 15位有效数字 r=2.5; long double h=3.2; 实型常量 8字节 v=3.14159*r*r*h; 精度:1.7×10±308 cout<<v<<endl; 15位有效数字 } 11
12 .C++语言程序设计 数据类型 ——字符型数据(一) 基 字符常量 本 –单引号括起来的一个字符, 如:'a', 'D', '?', '$' 数 字符变量 据 –用来存放字符常量 类 例:char c1,c2; c1='a'; 型 c2='A'; 字符数据在内存中的存储形式 –以ASCII码存储,占1字节,用7个二进制位 12
13 .C++语言程序设计 数据类型 ——字符型数据(二) 字符数据的使用方法 基 –字符数据和整型数据之间可以运算。 本 –字符数据与整型数据可以互相赋值。 数 据 字符串常量 类 例:"CHINA" C H I N A \0 型 "a" a \0 'a' a 所以:char c; c="a"; Page 13 13
14 .C++语言程序设计 数据类型 ——布尔型数据 基 本 布尔型变量的说明: 数 例:bool flag; 据 类 布尔型数据的取值: 型 只有 false 和 true 两个值 14
15 .C++语言程序设计 unsigned, signed 基 类型int, short, long 和 long long 都是 本 带符号的,在类型名前添加unsigned 数 就可以得到无符号类型。如: 据 unsigned long,unsigned int 等价于 类 unsigned 型 字符型分为:char,signed char 和 unsigned char 如何选择变量的类型?
16 .C++语言程序设计 声明和初始化 基 int a = 7; a: 7 本 数 int b = 9; b: 9 据 char c = 'a'; c: 'a' 类 double x = 1.2; 1.2 型 x: string s1 = "Hello, world"; s1 12 | "Hello, world" : string s2 = "1.2"; s2: 3 | "1.2"
17 .C++语言程序设计 赋值与自增 基 a: 本 // changing the value of a variable 7 int a = 7; // a variable of type int called a 数 a = 9; // initialized to the integer value 7 // assignment: now change a's value to 9 据 9 类 a = a+a; // assignment: now double a's value 18 型 a += 2; // increment a's value by 2 20 ++a; // increment a's value (by 1) 21
18 .C++语言程序设计 类型安全 语言规则:类型安全 基 – 对象都将只能根据其类型使用 变量使用前要初始化 本 只有变量所声明的类型操作才能被使用 数 对变量的操作都将会得到一个有效的值 理想:静态类型安全 据 – 违反类型安全的程序将不能被编译 类 编译器将报告每一违反处(理想编译器中) 理想: 动态类型安全 型 – 违反类型安全的程序在运行时会被检测到 类型安全是一件大事 – 尽力不要去违反它 – 当你编程时,编译器是你最好的朋友
19 .C++语言程序设计 违背类型安全——隐式切割 基 // Beware: C++ does not prevent you from trying to put a large value 本 // into a small variable (though a compiler may warn) int main() 数 { int a = 20000; a 20000 据 char c = a; int b = c; c: ??? 类 if (a != b) // != means “not equal” cout << "oops!: " << a << "!=" << b << '\n'; 型 else cout << "Wow! We have large characters\n"; } Try it to see what value b gets on your machine
20 .C++语言程序设计 违背类型安全——变量未初始化 基 // Beware: C++ does not prevent you from trying to use a variable // before you have initialized it (though a compiler typically warns) 本 int main() { 数 int x; char c; // x gets a “random” initial value // c gets a “random” initial value 据 double d; // d gets a “random” initial value // – not every bit pattern is a valid floating-point 类 value double dd = d; // potential error: some implementations 型 // can’t copy invalid floating-point values cout << " x: " << x << " c: " << c << " d: " << d << '\n'; } Always initialize your variables – beware: “debug mode” may initialize (valid exception to this rule: input variable)
21 .C++语言程序设计 变量的存储 基 In memory, everything is just bits; type is what gives meaning to the bits 本 (bits/binary) 01100001 is the int 97 is the char 'a' (bits/binary) 01000001 is the int 65 is the char 'A' 数 (bits/binary) 00110000 is the int 48 is the char '0' 据 char c = 'a'; 类 cout << c; int i = c; // print the value of character c, which is a 型 cout << i; // print the integer value of the character c, which is 97 This is just as in “the real world”: – What does “42” mean? – You don’t know until you know the unit used Meters? Feet? Degrees Celsius? $s? a street number? Height in inches? …
22 .C++语言程序设计 数据类型 —混合运算时的类型转换 不同类型数据进行混合运算时,C++编译器 基 会自动进行类型转换。 本 为了避免不同的数据类型在运算中出现类 数 型问题,应尽量使用同种类型数据。 据 可以采用强制类型转换: 类 例如: 型 float c; int a,b; c=float(a)/float(b); 或 c=(float)a/(float)b; 22
23 .C++语言程序设计 数据转换习题 基 本 数 据 类 型
24 .C++语言程序设计 习题 基 本 数 据 类 型
25 .C++语言程序设计 常量 基 定义: const Type var_names = literal; 本 整数常量:20/*十进制*/ 020/*八进制*/ 数 0x20/*十六进制*/ 据 浮点常量:3.14, 3.14E0, 0., 0e0, .00, 类 字符:'a'; 字符串:"Hello, World!" 型 转义序列
26 .C++语言程序设计 算术运算符与算术表达式 基本算术运算符 表 + - * /(若整数相除,结果取整) 达 %(取余,操作数为整数) 式 优先级与结合性 先乘除,后加减,同级自左至右 ++, --(自增、自减) 例:i++; -- j; Page 26 26
27 .C++语言程序设计 赋值运算符和赋值表达式 简单的赋值运算符"=" 举例 表 n=n+5 达 表达式的类型 式 等号左边对象的类型 表达式的值 等号左边对象被赋值后的值 Page 27 27
28 .C++语言程序设计 赋值运算符和赋值表达式 复合的赋值运算符 有10种复合运算符: 表 +=, -=, *=, /=, %=, 达 <<=,>>=,&=,^=,|= 式 例 a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) 28
29 .C++语言程序设计 赋值运算符和赋值表达式 ——赋值表达式举例 a=5 表达式值为5 a=b=c=5 表达式值为5,a,b,c均为5 表 a=5+(c=6) 表达式值为11,a为11,c为6 达 a=(b=4)+(c=6) 式 表达式值为10,a为10,b为4,c为6 a=(b=10)/(c=2) 表达式值为5,a为5,b为10,c为2 a+=a-=a*a 相当于 a=a+(a=a-a*a) Page 29 29