C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计
“ 目录 C++语言程序设计 基本知识 编程技能 刨根问底 C++的词法记号和标识符 等于号和双等于号 基本数据类型 sizeof运算符 变量和常量 运算符和表达式 C语言的输入输出 C++的输入输出 等于号和双等于号 sizeof运算符 输出的格式控制 使用string类型处理字符串 磁盘文件是什么 C++语言程序设计
基本知识 a C++语言程序设计
2.1 C++的词法记号和标识符 字符集 英文字母:A~Z,a~z 数字字符:0~9 特殊字符: C++语言程序设计 + - * / % ^ = < > ! # & | _ ~ \ ‘ “ ; . , ( ) [ ] { } 空格 C++语言程序设计
2.1 C++的词法记号和标识符 关键字 是C++预先定义好的标识符,在程序中具有特殊作用。 C++关键字: C++语言程序设计 auto bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile while C++语言程序设计
标识符 2.1 C++的词法记号和标识符 是程序员声明的单词,它命名程序正文中的一些实体,如函 数名、变量名、类名、对象名等。 第一个字符必须是大写、小写字母或下划线; 不包含空格和“+、-、;”等特殊字符; 为方便输入,长度一般不超过31个字符 声明标识符时,做到“见名识意”,可以提高程序的可读性 注意: C++的标识符是大小写敏感的,例:myName≠myNAME 例如: 合法的标识符: apple、_Student、_123、no1、max_num 不合法的标识符: 51job、max num、-abc C++语言程序设计
2.1 C++的词法记号和标识符 分隔符 不表示实际的操作,仅用于构造程序 C++分隔符: C++语言程序设计 ( ) { } , : ; ( ) { } , : ; 例如:“;”用来作为一句完整语句的结束 C++语言程序设计
2.1 C++的词法记号和标识符 空白 是指制表符、空格、空行,用于分隔单词 在C++语句中经常出现空白,通常都忽略不计
数据类型 C++的数据类型决定了: 2.2 基本数据类型 数据根据其本身的特点进行分类,从而形成不同的数据类型 不同类型的数据有不同的表示和处理方法 C++的数据类型决定了: 数据表示形式 数据的存储空间 对数据可以进行哪些运算以及及运算规则 C++语言程序设计
C++的数据类型 2.2 基本数据类型 C++的基本数据类型,可用来表示整数、实数、单个字符以 及逻辑值 根据数据特点,指定数据类型 自定义数据类型 C++的基本数据类型,可用来表示整数、实数、单个字符以 及逻辑值 根据数据特点,指定数据类型 整数:数值的取值范围、是否需要存放负数 实数:数值的取值范围、有效数字位数 C++语言程序设计
2.2 基本数据类型 整数 实数: signed unsigned short 单个字符 long 逻辑值 整型:int 单精度浮点型:float 双精度浮点型:double 单个字符 字符型:char 逻辑值 逻辑型:bool signed unsigned short long C++语言程序设计
2.2 基本数据类型 C++语言程序设计 类 型 长度(字节) 取 值 范 围 说 明 char/signed char 1 类 型 长度(字节) 取 值 范 围 说 明 char/signed char 1 −128~127 有符号字符 unsigned char 0~255 无符号字符 short int/short 2 −32 768~32 767 短整型 unsigned short int 0~65 535 无符号短整型 int/signed int 4 −231~231−1 整型 unsigned int 0~232−1 无符号整型 long/long int 长整型 unsigned long 无符号长整型 float −3.4×1038~3.4×1038 浮点型 double 8 −1.7×10308~1.7×10308 双精度型 long double 长双精度型 C++语言程序设计
数据类型决定了存放数据的内存空间的大小(字节数) 2.2 基本数据类型 数据类型决定了存放数据的内存空间的大小(字节数) 内存空间大小用字节(Byte)数表示 1 Byte = 8 bit 特定类型的数据所占字节数还和所使用的计算机系统以及 编译器有关 不同类型的数据所能表示的数据取值范围不同 不同类型的数据采用不同的存储格式 有符号整型:补码 浮点数型:IEEE754标准 字符型:ASCII码 C++语言程序设计
2.3 变量和常量 数据是程序处理的对象 程序在运行中通过变量和常量来操作数据 变量:在整个程序运行期间,其存储的值可以改变的量 常量:程序运行期间,其值不可以改变的量 符号常量:用符号表示的常量 常数(字面常量):是指程序中直接写出的数据 例如: int n=3; C++语言程序设计
2.3 变量和常量 变量 定义变量的语法格式 在整个程序运行期间,其存储的值可以改变的量 实质:内存中的一个地址空间,对该地址空间中的数据可以进行存储、读取 定义变量的语法格式 数据类型 变量名1, 变量名2, …… 变量名n; 例如:定义各种类型的变量 int num; float f; char ch; short s; double area, length; C++语言程序设计
2.3 变量和常量 定义变量的实质 例如:int num; 用于为变量分配内存空间 根据数据类型int,从地址0xXXXXXXXX开始,为变量num分配4个字节单元 变量num的取值范围为−231~231−1 编程时,可以直接使用变量名num对存储在该内存空间的数据,也就是变量值进行存取 C++语言程序设计
2.3 变量和常量 变量的赋值 变量的初始化 C++语言程序设计 使用赋值运算符“=”可以将一个值赋给变量 例如: unsigned short int age; age=18; 变量的初始化 定义变量时,给它指定一个初始值 unsigned short int age=18; 或者 unsigned short int age(18); char ch1=‘a’, ch2=‘b’; 或者 char ch1(‘a’), ch2(‘b’); 提示: 变量可以被多次赋值 变量初始化只能做一次 C++语言程序设计
2.3 变量和常量 例:赋值运算符的使用 C++语言程序设计 运行结果: myAge=18 myAge=20 //变量的赋值 #include<iostream> using namespace std; void main() { int myAge=18; //变量的初始化 cout<<"myAge="<<myAge<<endl; myAge=20; //变量的赋值 } C++语言程序设计
2.3 变量和常量 符号常量定义格式 关于常量的几点说明 const 数据类型 常量名 = 初始值; 例如: const double PI = 3.14159; 关于常量的几点说明 常量在程序运行过程中不能够被改变 常量在定义的时候必须进行初始化 不能对常量进行赋值操作 例如: const double PI; PI=3.14159; 错误! C++语言程序设计
2.3 变量和常量 C语言中定义符号常量 使用预处理指令 #define 指令形式: #define 符号常量名 数据值 例如:#define PI 3.14159 注意:因为不是C++语句,所以行末没有“;” 提示:程序中尽可能使用符号常量, 尽量避免直接使用有特殊意义的常数, 以提高程序的可读性和可维护性 C++语言程序设计
2.3 变量和常量 整型常数 十进制:直接写出的整数,例如:231、-4569、0 八进制:以数字0开头的整数,例如:0123 八进制数的有效数字为:0~7 无正负号 十六进制:以0x或0X开头的整数,例如:0x123 十六进制数的有效数字为:0~9、A~F(a~f) 整型常数默认是 int 类型 可以用后缀字母U或u表示无符号型:例如:65536U 可以用后缀字母L或l表示长整型:123L C++语言程序设计
2.3 变量和常量 浮点型常数 小数形式:由数字和小数点组成,例如:0.123、234.0、12.56 指数形式:表示为: aEb(aeb) ,代表数值:a × 10b 例如:1.23E-1、234e1、0.1256E2 a、b都不可以省略 b必须是整数 浮点型常数默认是 double 类型 可以用后缀字母F或f表示float类型,例如:12.56f 可以用后缀字母L或l表示long double,例如:0.1256E2L C++语言程序设计
2.3 变量和常量 字符常数 字符型数据占用一个字节,采用ASCII编码 字符常数采用单引号作为界定符 字符常数包括: C++语言程序设计 不可显示的控制字符,采用转义字符序列表示,例如:’\n’、’\t’、’\a’等 有特殊用途的字符,采用转义字符序列表示, 例如:’\\’ 、’\’’ 、’\”’ C++语言程序设计
2.3 变量和常量 转义字符 以 \ 开头的字符序列,用来表示一个特定字符 C++中的转义字符 C++语言程序设计 字 符 形 式 以 \ 开头的字符序列,用来表示一个特定字符 C++中的转义字符 字 符 形 式 ASCII码 含 义 \a 0x07 响铃 \n 0x0A 换行 \t 0x09 制表符(横向跳格) \v 0x0B 竖向跳格 \b 0x08 退格 \r 0x0D 回车 \\ 0x5C 反斜线 \ \" 0x22 双引号 \' 0x27 单引号 \ooo o是八进制数 任意ASCII字符 \xhh h是十六进制数 C++语言程序设计
2.3 变量和常量 例:打印特殊字符 C++语言程序设计 运行结果: 输出字母:a (蜂鸣器响一声) 输出字母:n (换行) //打印特殊字符 #include<iostream> using namespace std; void main() { cout<<"输出字母: "<< 'a'<<'\a'<<endl; cout<<"输出字母: " << 'n'<<'\n'; } C++语言程序设计
2.3 变量和常量 字符数据的存储 例:字符数据和整型数据的转换 C++语言程序设计 在内存中,字符数据以ASCII码存储 注意:变量的数据类型决定如何解读内存中的数据 //字符数据和整型数据的转换 #include<iostream> using namespace std; void main() { int n='a'; char ch = 97; cout<<"按整数输出内容: "<<n<<endl; cout<<“按字符输出内容: ”<<ch<<endl; } 运行结果: 按整数输出内容:97 按字符输出内容:a C++语言程序设计
2.3 变量和常量 字符串常量 字符串常量的存储 由一对双引号括起来的字符序列 例如: 除了存储所包含的字符外,还存储一个结束标志’\0’ “Hello world! “ “C++程序设计” 字符串常量的存储 除了存储所包含的字符外,还存储一个结束标志’\0’ ‘\0’:ASCII码值为0的字符——结束符 例如: “WORLD!” 注意:字符串常量和字符型数据存储的区别 “A”: ‘A’ : A \0 A W O R L D ! \0 C++语言程序设计
2.3 变量和常量 逻辑常数 逻辑常数只有两个 逻辑型数据的存储 逻辑常数的显示 C++语言程序设计 false:表示“假” 例如: true:表示“真” 逻辑型数据的存储 占用一个字节单元 false:存放为0 true: 存放为1 逻辑常数的显示 false: 显示为0 true: 显示为1 例如: bool exchanged=false; exchanged=true; C++语言程序设计