第二章基本数据类型及其运算 机 程 序·学习目标 设 计 了解数据类型的一般概念,熟悉C语言中的基本 基 数据类型 础 熟悉C语言中常量与变量的概念,掌握定义常量 与变量的方法 掌握C语言中的基本运算 掌握基本的输入输出函数的用法 了解C语言操作符的优先级与结合性 清华大学计算中心 http://learn.tsinghua.edu.cn 2
清华大学计算中心 http://learn.tsinghua.edu.cn 2 计 算 机 程 序 设 计 基 础 第二章 基本数据类型及其运算 • 学习目标 – 了解数据类型的一般概念,熟悉 C 语言中的基本 数据类型 – 熟悉 C 语言中常量与变量的概念,掌握定义常量 与变量的方法 – 掌握 C 语言中的基本运算 – 掌握基本的输入输出函数的用法 – 了解 C 语言操作符的优先级与结合性
计 算 2.1C语言的数据类型 机 序·数据类型的一般概念 设 计·C语言数据类型关系图 基 础 常量 整型常量 实型常量 字符型常量与反斜杠字符常量 字符串常量 符号常量 清华大学计算中心 http://learn.tsinghua.edu.cn 3
清华大学计算中心 http://learn.tsinghua.edu.cn 3 计 算 机 程 序 设 计 基 础 2.1 C 语言的数据类型 • 数据类型的一般概念 • C 语言数据类型关系图 • 常 量 – 整型常量 – 实型常量 – 字符型常量与反斜杠字符常量 – 字符串常量 – 符号常量
计 算 数据类型的一般概念 机 程 序 确定了以值为元素的数据集 设 值的可能范围,即定义域 计 基·确定了操作(运算)集 础 不同数据类型具有不同的操作集,不同数据类型类型间 也可以进行混合运算 规定了值的存储格式 不同类型数据在计算机中存储格式不同,相同类型数据 在不同计算机与编译器下的存储格式也可能不同 数据处理的基本对象 常量与变量,均属于某种数据类型 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 4 计 算 机 程 序 设 计 基 础 数据类型的一般概念 • 确定了以值为元素的数据集 – 值的可能范围,即定义域 • 确定了操作(运算)集 – 不同数据类型具有不同的操作集,不同数据类型类型间 也可以进行混合运算 • 规定了值的存储格式 – 不同类型数据在计算机中存储格式不同,相同类型数据 在不同计算机与编译器下的存储格式也可能不同 • 数据处理的基本对象 – 常量与变量,均属于某种数据类型
C语言数据类型关糸图 计算机程序设计基础 单精度实型 空值型/实型 双精度实型 基本数据类型{字符型 无符号短整型 数值型 短整型 有符号短整型 无符号整型 数据类型 整型〈整型 有符号整型 数组 无符号长整型 结构 长整型 复合数据类型〈联合 枚举 有符号长整型 指针 清华大学计算中心 http://learn.tsinghua.edu.cn 5
清华大学计算中心 http://learn.tsinghua.edu.cn 5 计 算 机 程 序 设 计 基 础 C 语言数据类型关系图 基本数据类型 复合数据类型 字符型 数值型 空值型 整型 整 型 无符号整型 有符号整型 短整型 无符号短整型 有符号短整型 长整型 无符号长整型 有符号长整型 实型 单精度实型 双精度实型 结构 联合 数组 枚举 指针 数据类型
整型常量 计算机程序设计基础 十进制表示 以数字1^9开头的0~9序列,如9、87655 十六进制表示 以“0x”或“0X开头的0~9、Aa~F序列,如 0x55、0c1F、0x2a 0x5516=8510 八进制表示 以0开头的0~7序列,如055 0558=4510,注意不要与十进制混淆! 清华大学计算中心 http://learn.tsinghua.edu.cn 6
清华大学计算中心 http://learn.tsinghua.edu.cn 6 计 算 机 程 序 设 计 基 础 整型常量 • 十进制表示 – 以数字1~9开头的0~9序列,如9、–876、55 • 十六进制表示 – 以“0x”或“0X”开头的0~9、A/a~F/f序列,如 0x55、0x1F、0x2a – 0x5516 = 8510 • 八进制表示 – 以0开头的0~7序列,如055 – 0558 = 4510 ,注意不要与十进制混淆!
计 算 实型常量 机 程 序·一般形式:小数表示法 设 计 由整数部分、小数点与小数部分组成 基 础 例:3.1416、-2.718281828 指数形式:科学计数法 -由尾数部分、字符E/e,与指数部分组成 例:3.14:3=3.14×10327E2=-2.7×102 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 7 计 算 机 程 序 设 计 基 础 实型常量 • 一般形式:小数表示法 – 由整数部分、小数点与小数部分组成 – 例:3.1416、–2.718281828 • 指数形式:科学计数法 – 由尾数部分、字符‘E’/‘e’与指数部分组成 – 例:3.14e3 = 3.14103 、–2.7E–2 = –2.710–2
字符型常量与反斜杠字符常量 机 序·字符型常量 设 计 以单引号括起来的单一字符,如A、c 基 础 字符常量按照其在字符集(一般为Asc)中的 编码值存储并参与运算 反斜杠字符常量 以“开头,后跟字符或数字,用于表示一个特 定含义的字符,例如m表示换行字符,称为转 义字符序列 常与普通字符混杂于某个字符串中 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 8 计 算 机 程 序 设 计 基 础 字符型常量与反斜杠字符常量 • 字符型常量 – 以单引号括起来的单一字符,如‘A’、 ‘c’ – 字符常量按照其在字符集(一般为 ASCII)中的 编码值存储并参与运算 • 反斜杠字符常量 – 以‘\’开头,后跟字符或数字,用于表示一个特 定含义的字符,例如‘\n’表示换行字符,称为转 义字符序列 – 常与普通字符混杂于某个字符串中
ASC码表 计算机程序设计基 0 4 5 6 7 8 0000001002003004005006 V t 10myf10160170200211021023 20024025026027030031032033034035 础30 1036037sce 0 0 1 50 78 60 +5?Is B C DN E 70 G H K M 80 FPz Q R T VWX Y 90 b 100d 110 eoy fpz gq 120 17 清华大学计算中心 http://learn.tsinghua.edu.cn 9
清华大学计算中心 http://learn.tsinghua.edu.cn 9 计 算 机 程 序 设 计 基 础 ASCII 码表 0 1 2 3 4 5 6 7 8 9 0 \000 \001 \002 \003 \004 \005 \006 \a \b \t 10 \n \v \f \r \016 \017 \020 \021 \022 \023 20 \024 \025 \026 \027 \030 \031 \032 \033 \034 \035 30 \036 \037 space ! " # $ % & ' 40 ( ) * + , – . / 0 1 50 2 3 4 5 6 7 8 9 : ; 60 ? @ A B C D E 70 F G H I J K L M N O 80 P Q R S T U V W X Y 90 Z [ \ ] ^ _ ` a b c 100 d e f g h i j k l m 110 n o p q r s t u v w 120 x y z { | } ~ \177
转义序列及其意义 计算机程序设计基础 转义序列 功能与意义 响铃 \b 退格 换页 换行 返回到当前行首 t 水平制表键 垂直制表键 10 ASCI码0 字符“自身 字符“’(仅在字符常数中需要 字符‘“(仅在字符串常数中需要\) Addd “ddy表示八进制的该字符ASI码值 清华大学计算中心 http://learn.tsinghua.edu.cn 10
清华大学计算中心 http://learn.tsinghua.edu.cn 10 计 算 机 程 序 设 计 基 础 转义序列及其意义 转义序列 功能与意义 \a 响铃 \b 退格 \f 换页 \n 换行 \r 返回到当前行首 \t 水平制表键 \v 垂直制表键 \0 ASCII码0 \\ 字符‘\’自身 \‘ 字符‘’’(仅在字符常数中需要‘\’) \“ 字符‘“’(仅在字符串常数中需要‘\’) \ddd “ddd”表示八进制的该字符ASCII码值
计 算 字符串常量 机 程 序·字符串:以双引号括起来的一串字符 设 计 例:“ Tsinghua”、“ Programming in C” 基 础 字符串的长度:其中的字符数目 长度n,占用n+1字节,最后一个字节存储NL字符“0 例:“ Tsinghua"占用9个字节 10841151051010310411710970 字符串常量与字符常量不同 字符串至少占用一个字节,为什么 清华大学计算中心 http://learn.tsinghua.edu.cn 11
清华大学计算中心 http://learn.tsinghua.edu.cn 11 计 算 机 程 序 设 计 基 础 T s i n g h u a \0 字符串常量 • 字符串:以双引号括起来的一串字符 – 例:“Tsinghua”、 “Programming in C” • 字符串的长度:其中的字符数目 – 长度n,占用n+1字节,最后一个字节存储NULL字符‘\0’ – 例:“Tsinghua”占用9个字节 • 字符串常量与字符常量不同 • 字符串至少占用一个字节,为什么? \084 \115 \105 \110 \103 \104 \117 \097 \0