
清华C语言程序设计第02章数据类型运算符与表达式.ppt
35页第第2 2章章 数据类型、运算符与表达式数据类型、运算符与表达式讲授内容讲授内容nC++C++语言的基本元素、字符集和关键字语言的基本元素、字符集和关键字n基本的数据类型的表示方法基本的数据类型的表示方法n常量和变量常量和变量n类型转换类型转换n各种运算符与表达式各种运算符与表达式22.1 C++2.1 C++的字符集和关键字的字符集和关键字(1/2)(1/2)n字符集字符集n由由52个字母、个字母、10个数字、个数字、27个特殊字符组个特殊字符组成成n所有所有C++程序(程序(忽略换行符和字符串常量中忽略换行符和字符串常量中的内容的内容)都由字符集中的字符按一定规则构)都由字符集中的字符按一定规则构成成32.1 C++2.1 C++的字符集和关键字的字符集和关键字(2/2)(2/2)nC++标识符是满足如下条件的一串字符标识符是满足如下条件的一串字符n由字母由字母(a~z,A~Z)或下划线或下划线(_)开头;开头;n其其它它部部分分可可以以由由字字母母、、下下划划线线或或数数字字(0~9)组成;组成;n只有前只有前32个字符有效;个字符有效;nC++的的63个关键字也是标识符,但不能个关键字也是标识符,但不能作其它用(保留字)作其它用(保留字)42.2基本数据类型基本数据类型(1/5)(1/5)nC++程序中的每个数据对象(如程序中的每个数据对象(如2、、x1、、x1+2))都有确定的数据类型都有确定的数据类型nC++的数据类型包括基本数据类型和复合的数据类型包括基本数据类型和复合数据类型数据类型n基本数据类型有基本数据类型有整型、浮点型、字符型、布尔型整型、浮点型、字符型、布尔型n不同数据类型有自己的取值范围和所允不同数据类型有自己的取值范围和所允许的操作许的操作52.2基本数据类型基本数据类型(2/5)(2/5)n整型整型nsigned short int (简写为简写为 short )nsigned int (简写为简写为 int )nsigned long int (简写为简写为 long )nunsigned short int (简写为简写为 unsigned short)nunsigned int (简写为简写为 unsigned )nunsigned long int (简写为简写为 unsigned long)62.2基本数据类型基本数据类型(3/5)(3/5)n浮点型浮点型nfloat (浮点型浮点型)ndouble (双精度型双精度型)nlong double (长双精度型长双精度型)n均有符号均有符号n不允许的操作:取余%、位运算等不允许的操作:取余%、位运算等72.2基本数据类型基本数据类型(4/5)(4/5)n字符型字符型ncharnsigned charnunsigned char n实质是占一个字节的整型数(小整数)实质是占一个字节的整型数(小整数)n允许的操作:和整型相同允许的操作:和整型相同82.2基本数据类型基本数据类型(5/5)(5/5)n布尔型布尔型nbooln值为值为true和和falsen可以当作整数用(可以当作整数用(true一般为一般为1,,false为为0))n把其它类型的值转换为布尔值时,非零值转把其它类型的值转换为布尔值时,非零值转换为换为true,,零值转换为零值转换为false92.32.3 变量与常量变量与常量(1/9)(1/9)n函数体函数体n说明语句说明语句n类型名、变量、常量表达式类型名、变量、常量表达式n执行语句执行语句n表达式表达式n变量、常量、运算符变量、常量、运算符102.32.3 变量与常量变量与常量(2/9)(2/9)n扩充的巴克斯范式扩充的巴克斯范式 n表示语法(全书统一,不涉及语义)表示语法(全书统一,不涉及语义)<非非0数字数字> → 1|2|3|4|5|6|7|8|9<八进制数字八进制数字> → 0|1|2|3|4|5|6|7<十六进制数字十六进制数字> → 0|1|2|3|4|5|6|7|8|9| a|b|c|d|e|f|A|B|C|D|E|F<整型后缀整型后缀> → <无符号整型后缀无符号整型后缀>[<长整型后缀长整型后缀>] | <长整型后缀长整型后缀>[<无符号整型后缀无符号整型后缀>]<无符号整型后缀无符号整型后缀> → u|U<长整型后缀长整型后缀> → l|L<八进制整型常量八进制整型常量> → 0<八进制数字八进制数字>{<八进制数字八进制数字>}112.32.3 变量与常量变量与常量(3/9)(3/9)n扩充的巴克斯范式扩充的巴克斯范式 <整型常量整型常量> → <十进制整型常量十进制整型常量> [<整型后缀整型后缀>] | <八进制整型常量八进制整型常量> [<整型后缀整型后缀>] | <十六进制整型常量十六进制整型常量> [<整型后缀整型后缀>]<十进制整型常量十进制整型常量> → 0|<非非0数字数字>{<数字数字>} <八进制整型常量八进制整型常量> → 0<八进制数字八进制数字>{<八进制数字八进制数字>}<十六进制整型常量十六进制整型常量> → 0x<十六进制数字十六进制数字>{<十六进制十六进制数字数字>} | 0X<十六进制数字十六进制数字>{<十六进制数字十六进制数字>}<数字数字> → 0|1|2|3|4|5|6|7|8|9122.32.3 变量与常量变量与常量(4/9)(4/9)n扩充的巴克斯范式扩充的巴克斯范式 <浮点常量浮点常量> → <尾数部分尾数部分>[<指数部分指数部分>][<浮点后缀浮点后缀>] | <数字串数字串><指数部分指数部分>[<浮点后缀浮点后缀>] <尾数部分尾数部分> → [<数字串数字串>].<数字串数字串>|<数字串数字串>. <指数部分指数部分> → e[<符号符号>]<数字串数字串> | E[<符号符号>]<数字串数字串><符号符号> → + | <数字串数字串> → <数字数字>{<数字数字>}<浮点后缀浮点后缀> → f|l|F|L132.32.3 变量与常量变量与常量(5/9)(5/9)n扩充的巴克斯范式扩充的巴克斯范式 <字符型常量字符型常量> → ‘]” → {} → 字符集中除双引号字符集中除双引号“、反斜线、反斜线\外的任意字外的任意字符符 | 其它可显示字符其它可显示字符 | <转义序列转义序列>152.32.3 变量与常量变量与常量(7/9)(7/9)n变量变量n四要素:四要素:n变量名、类型、存储空间、值变量名、类型、存储空间、值n必须先声明后使用,一般声明形式为:必须先声明后使用,一般声明形式为:<变量声明变量声明> → <存储类别描述符存储类别描述符><类型描述符类型描述符><变量表变量表><存储类别描述符存储类别描述符> → auto|register|static|extern<类型描述符类型描述符> → <类型名类型名><变量表变量表> → <标识符列表标识符列表><标识符列表标识符列表> → <非关键字标识符非关键字标识符>{,<非关键字标识符非关键字标识符>}162.32.3 变量与常量变量与常量(8/9)(8/9)n符号常量符号常量 n符号常量是经过定义的代表常量的标识符符号常量是经过定义的代表常量的标识符nC++定义符号常量的格式如下:定义符号常量的格式如下: #define <标识符标识符> <常量常量>#define是是C++的的预预处处理理指指令令,,说说明明程程序序中中的的<标识符标识符>都代表了都代表了<常量常量>。
172.32.3 变量与常量变量与常量(9/9)(9/9)例子:例子:#define PRICE 30#include
