C语言基本数据类型.ppt

上传人:max****ui 文档编号:8615199 上传时间:2020-03-30 格式:PPT 页数:68 大小:313.50KB
返回 下载 相关 举报
C语言基本数据类型.ppt_第1页
第1页 / 共68页
C语言基本数据类型.ppt_第2页
第2页 / 共68页
C语言基本数据类型.ppt_第3页
第3页 / 共68页
点击查看更多>>
资源描述
第2章基本数据类型 本章介绍有关数据类型的最基本的内容 包括表示方式 取值范围及一般转换规则等 另外也简要介绍常用库函数printf 和scanf 的一般使用格式 2 1字符集及词法约定 2 1 1字符集 1 数字 我们平常使用的10个十进制数字 0 1 9 2 字母 大 小写英文字母各26个 A B Z和a b z 大 小写字母是有区别的 表示不同的字符 3 图形符号 29个图形 可见 字符 即 4 转义序列 表2 1列出了C语言源程序中常用到的一些转义序列及其含义 表2 1转义序列及其含义 续表 1 标识符在C语言中 用来标记常量 变量 数据类型 函数及程序的名字 必须符合下列语法规则 应以字母 大小写皆可 或下线符 中任一个字符开头 2 1 2词法约定 在第一个字母后 可以是任意字母 下线符和数字组成的字符序列 此序列可为空串 根据以上规则 下列字符序列是合法的标识符 NAME1name1Total 5Paper i3 out 而以下字符序列不是合法的标识符 NAME1中间留有空格 它不是字母数字串name 2中间有 此为非字母 数字字符5t开头的是数字 而不是字母 4开头的是一般字符 不是字母 程序中的标识符必须选择恰当 在选择标识符时 要尽量避免使用容易混淆的字符 C语言区分大 小写字母 所以name1 Name1和NAME1可在同一程序中使用 各代表不同的变量 标识符的最大长度还受实现的限制 2 关键字在有些语言中关键字又称作保留字 它是具有特定含义 专门用作语言的特定成分的一类标识符 不能当作一般标识符使用 表2 2列出C语言的全部关键字及其用途 表2 2关键字及其用途 续表 3 标点符号C语言中标点符号是表示语法的符号 共有13个 即 程序中往往要用到一些预先给定值的量 并且在程序执行过程中其值不再发生变化 这类数据一般称为常量 2 2常量 C语言中有不同类型的常量 如整型常量 浮点常量 字符常量和字符串常量 常量在C语言中出现的形式一般有两种 一种是在程序中直接使用给定的值 2和3 1415926都是固定不变的量 而且直接以值的形式出现 这种形式的常量往往称为字面量 另一种形式是采用宏定义形式 例如 definePI3 1415926经过宏定义之后 就用标识符来代表字面量 这种形式的常量通常称为符号常量 符号常量的名字往往用大写字母 不能把符号常量名当作变量使用 在C语言中 整常量分为十进制整常量 八进制整常量和十六进制整常量 普通整常量在机器中占一个字长 1 十进制整常量十进制整常量是带正负号的整数 如12 2008 10001 39 2 2 1整型常量 八进制整常量是以数字0开头的八进制数字串 其中只能出现数字0 7 通常 它是无符号数 即没有正负号的数 2 八进制整常量 十六进制整常量是以0 x或0X开头的十六进制数字串 可用的数字有0 9 a f或A F 3 十六进制整常量 1 无符号型后缀无符号型后缀用小写字母u或者大写字母U表示 unsignedint 例如 986u 07654u 0XFEDu等都是无符号整常量 4 整常量的后缀 2 长型后缀长型后缀用小写字母l或大写字母L表示 longint 例如 62l 0123L 0 x327l等 如果一个整常量后面同时带有后缀l L 和u U 那么 它的类型就是unsignedlongint 无符号长整型 例如 9999lu 077777LU等 它有以下两种表示形式 1 十进制数形式例如 3 14 0 618 618 10 0 123 等都是合法的浮点常量 在这种形式中 一个浮点常量是由数字和小数点组成 必须有小数点 并且小数点的前面或者后面必须有数字 2 2 2浮点常量 2 指数形式例如 2 98e6 或2 98E6 3 0e8 或3 0E8 6 E 5 6e 5 123E 4等都是合法的浮点常量 在这种形式中 必须带有阶码标志e 或E 并且e之前必须有数字 e之后的指数必须是整数 如果浮点常量不带后缀 那么它的类型就是双精度型 double 若在浮点常量后面带有后缀 字母F或f 那么它的类型就是单精度浮点型 float 通常简称为浮点型 在浮点常量后面还可带有后缀 字母l或L 此时 它的类型就是长双精度型 longdouble 在一般系统中 单精度浮点数占用4个字节 32位 的存储单元 而双精度浮点数占用8个字节 在C语言中 字符常量是用单引号括起来的一个字符或字符序列 如 x AB 9 等 除以上形式外 构成字符常量的字符还可以是转义序列 在C语言中转义序列有三种 简单转义序列 八进制转义序列和十六进制转义序列 2 2 3字符常量 1 简单转义序列 a b f n r t v虽然在形式上它们是由两个字符构成的 却只代表一个字符 2 八进制转义序列它是由反斜线 和后随的一个 两个或三个八进制数字构成的 如 014 75 6等 3 十六进制转义序列它是由反斜线 字母x和后随的一个 两个或三个十六进制数字构成 如 x9 x1A x123等 上述八进制转义序列和十六进制转义序列在构成形式上虽然出现多个字符 但在相应的字符常量或字符串常量中却只代表一个字符 如 014 xB9等都分别是一个字符的含义 字符常量的类型是int 它的值就是该字符在相应字符集中的编码值 字符常量可像其他整数一样参与数值运算 在 语言中 用 0 表示空字符NUL 在机器中存放时它所占字节的各位都是0 因而它的值也是0 要注意 空字符不是空白字符 还应注意 0 与 0 的区别 空字符常用来标识一个字符串的结尾 它是用一对双引号括起来的零个或多个字符组成的序列 如 Hello Thisisacharacterstring 1234567890 在双引号中没有任何字符 字符串常量也可以看成是一个数组 这个数组的元素为一个一个的字符 2 2 4字符串常量 编译程序在编译源文件时会自动在每个字符串末尾放上空字符 0 作为字符串的结尾 这种方式也表明 在C程序中 对字符串的长度不加限制 一个字符串究竟有多长 要到达结尾字符 0 时才能确定 每个字符串所需要的实际空间要比用户给出的字符数多一个字节 x 就不同于 x 前者是单独一个字符 而后者是一个字符串 它包含了两个字符 字母 x 和一个空字符 0 变量是在程序执行过程中其值可以改变的量 在程序中使用一个变量之前 先要对它进行定义 为它指定一个名称 变量名 指明它是什么类型的变量等 变量名应是合法的标识符 inti intj intk 2 3简单变量 同时对几个有相同类型的变量进行定义 也可以简写在一行中 如 inti j k 注意 int与i之间有空格 各变量名之间要用逗号隔开 最后一个变量名后面要用分号结尾 在C语言中定义变量的一般形式是 数据类型变量名 或者数据类型变量名1 变量名2 定义变量时 还应注意以下几点 不同类型的变量应在各自数据说明行上定义 不要把它们统统写在一行上 以增加程序的可读性 在程序的同一部分 不允许对同一标识符做重复定义 例如 1main 2 3inta b sum 4floatprice sum 5chara flag 数据说明语句是以分号结尾 而同一说明语句中各个变量名之间以逗号隔开 例如 inti j k 2 4基本数据类型及其转换 表2 3C语言数据类型 续表 2 4 1整型int及其相关类型 在C语言中 表示整型量的关键字是int 所以一个整型变量i的说明形式为 inti 在目前大多数实现中 整型变量的取值范围因机器字长而异 在字长为16位的机器上 整型变量i的取值范围是 32768 i 32767 对它们可以施行如下算术运算 加 减 乘 除 取模 整数还可使用下述运算符进行关系运算 C语言中与int有关的类型还有 1 短整型shortint 简写为short 2 长整型longint 简写为long 3 无符号整数unsignedint 简写为unsigned 表示字符型变量的关键字是char charc 一个字符型变量所占用的内存空间应足以存放所用基本字符集中任何一个字符 通常占用一个字节 即8位 2 4 2字符型char及其相关类型 在ANSIC和ISOC中 还规定了signedchar和unsignedchar两种类型 unsignedchar型量的取值范围是0 255 而signedchar型量的取值范围是 127 127 当把一个字符常量赋给一个字符变量时 该字符变量的值就是相应字符的编码值 在C语言中字符数据往往可以像整型数据那样进行有关运算 例2 1在ASCII字符集中 字母A的序号为65 分析以下程序的输出结果 includemain charx y x A 10 y Z 20 printf c d c d n x x y y return 0 字符数据可以以字符形式输出 也可以用整数形式输出 表示基本浮点类型的关键字是float floatf C语言中还提供其他两种浮点类型 double和longdouble 分别称作双精度类型和长双精度类型 float量的取值范围是double量的子集 而double量的取值范围又是longdouble量的子集 2 4 3浮点型float 一般机器上float量占4个字节 32位 double量占8个字节 64位 而longdouble量要占16个字节 128位 浮点变量可进行的算术运算有下述4种 其运算结果仍是一个浮点量 但大家应注意 取模运算符 不能作用于浮点量上 为了保持运算精度 在运算时所有的float量都被转换成double量 inti 10 floatpi 3 14 doublef f i pi 2 4 4类型转换 不同类型的量在一起进行算术运算时需进行类型转换 即 如果一个运算符有两个不同类型的运算分量 那么 在操作之前先将 较低 的类型提升为 较高 的类型 使二者类型统一 然后进行操作 其结果是 较高 类型 而类型的高低是由其属性 取值范围 精度 作用等 来决定的 由算术运算符对运算分量自动实施的类型转换称为普通算术转换 也称为隐式转换 图2 1算术转换规则 在进行运算之前 所有char型和short型数据都转换成int型 所有float型数据都转换成double型 从而可以提高运算精度 在赋值语句中 赋值号右边表达式的值的类型要转换成赋值号左边变量的类型 例如 inti 10 floatpi 3 14 doublef f i pi 例2 2分析下面程序输出的结果 BasicconversionsinC main inta b 550 charc 7 floatf1 3 142 f2 a b c integerdividedbyacharacter printf a d n a a f1 floattointegerconversion printf f1 f a d n f1 a f1 b integertofloatconversion printf b d f1 f n b f1 f2 b 50 0 integerdividedbyafloat printf b d f2 f n b f2 return 0 输出结果是 a 10f1 3 142000 a 3b 550 f1 550 000000b 550 f2 11 000000 C语言中除上述隐式类型转换外 还有显式类型转换 这就是利用类型强制转换运算符 类型名 表达式 形式中的一对圆括号 强行把其后表达式的类型转换成圆括号中给定的类型 1 printf 函数printf 函数的功能是按指定的输出格式把相应的参数值在标准输出设备 通常是终端 上显示出来 2 5printf和scanf函数的一般使用 printf 的一般使用格式是 printf 格式控制串 参数1 参数2 例如 printf Thevalue d d n a b 表2 6printf 中常用的转换说明及其作用 2 scanf 函数scanf 函数的功能是接受用户从键盘上输入的数据 按照格式控制符的要求进行类型转换 然后送到由对应参数指示的变量单元中去 scanf 的一般使用格式是 scanf 格式控制串 参数1 参数2 例如 scanf d f 表2 7scanf 中常用的转换说明及其作用
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!