




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基本数据类型基本数据类型引例引例变量与常量变量与常量预备知识预备知识内储存器的组织内储存器的组织数据类型数据类型基本数据类型基本数据类型整数类型整数类型字符字符浮点类型浮点类型C C语言程序设计语言程序设计引例引例引例引例问题问题计算任意一个圆的面积。计算任意一个圆的面积。源程序源程序(cw02-01.c)基本数据类型基本数据类型#include void main() float r, area; /定义变量定义变量 scanf(“%f”,&r); /读取输入的半径读取输入的半径 area = 3.14*r*r; /计算圆的面积计算圆的面积 printf(“area=%f”,area
2、); /输出输出1area=3.140000areararea = r2变量与常量变量与常量数据数据(Data)程序需要使用数据。程序需要使用数据。数据是信息的载体。数据是信息的载体。数据有多种形式:数、字符、图片等。数据有多种形式:数、字符、图片等。常量常量(Constants)在程序运行之前可以预先设定,并在整个运行过程中没有在程序运行之前可以预先设定,并在整个运行过程中没有变化的数据。变化的数据。例如引例中的圆周率例如引例中的圆周率3.14。变量变量(Variables)在程序运行过程中可能变化或被赋值的数据。在程序运行过程中可能变化或被赋值的数据。例如引例中的半径和面积。例如引例中的半
3、径和面积。基本数据类型基本数据类型数据类型数据类型数据类型的作用数据类型的作用决定数据的存储方式和占用的存储空间的大小。决定数据的存储方式和占用的存储空间的大小。决定可以进行的操作。决定可以进行的操作。C C语言的数据类型语言的数据类型基本类型基本类型整型整型(integer),字符型,字符型(character),浮点型,浮点型(floating-point),枚举类型,枚举类型(enumeration)构造类型构造类型结构体结构体(structure),共用体,共用体(union),数组,数组(array)指针类型指针类型(pointer)空类型空类型(void)基本数据类型基本数据类型位
4、、字节和字位、字节和字内存储器的组织内存储器的组织基本数据类型基本数据类型位(位(bitbit):最小的:最小的存储单位,可以容纳存储单位,可以容纳两个值之一,即两个值之一,即0或或1。200020012002字节(字节(ByteByte):基本:基本的存储单位,的存储单位,8位。位。字(字(wordword):自然的:自然的存储单位,包含若干存储单位,包含若干个字节。例如个字节。例如32位机位机的一个字就是的一个字就是32位。位。地址地址:以字节为:以字节为单位从单位从0开始编开始编号。号。整数的存储方式整数的存储方式有符号的正整数有符号的正整数在内存中以在内存中以二进制补码二进制补码形式存
5、放。形式存放。正整数的补码与原码相同。正整数的补码与原码相同。例如:例如:10基本数据类型基本数据类型符号位符号位0 0 0 0 0 0 0 00 0 0 0 1 0 1 00000000000001010RAM数轴数轴0215-1=32767可表示的数的范围可表示的数的范围-215=-32768整数的存储方式整数的存储方式有符号的负整数有符号的负整数在内存中以在内存中以二进制补码二进制补码的形式存放。的形式存放。例如:例如:-10基本数据类型基本数据类型符号位符号位1 1 1 1 1 1 1 11 1 1 1 0 1 1 01111111111110110RAM-10的原码的原码1 0 0
6、0 0 0 0 00 0 0 0 1 0 1 01 1 1 1 1 1 1 11 1 1 1 0 1 0 11 1 1 1 1 1 1 11 1 1 1 0 1 1 0按位取反按位取反加一后得到加一后得到 -10的补码的补码符号符号位不位不变变整数的存储方式整数的存储方式无符号整数无符号整数所有二进制位都存放数值。所有二进制位都存放数值。例如:例如:65535基本数据类型基本数据类型1 1 1 1 1 1 1 11 1 1 1 1 1 1 11111111111111111RAM0216-1=65535可表示的数的范围可表示的数的范围整数的类型整数的类型C C语言提供多种整数类型语言提供多种整
7、数类型为程序员提供了针对不同用途的多种选择。为程序员提供了针对不同用途的多种选择。基本数据类型基本数据类型类型名称类型说明符字节数数值范围基本整型基本整型signed int4-2147483648 2147483647短整型短整型signed short int2-3276832767长整型长整型signed long int4-2147483648 2147483647无符号基本整型无符号基本整型unsigned int404294967295无符号短整型无符号短整型unsigned short int2065535无符号长整型无符号长整型unsigned long int40429496
8、7295C标准只规定:标准只规定:short int long最大最小值参考最大最小值参考仅供参考,实际值与所仅供参考,实际值与所使用的操作系统、编译使用的操作系统、编译系统、机器有关。系统、机器有关。整型常量整型常量整型常量整型常量有三种形式:有三种形式:十进制十进制(decimal)整数整数12 65 65535八进制八进制(octal)整数:带前缀整数:带前缀 0(zero)014 0101 0177777十六进制十六进制(hexadecimal)整数:带前缀整数:带前缀 0 x 或或 0X0 xc 0 x41 0 xffff默认类型是默认类型是int,即有符号的基本整型。,即有符号的基
9、本整型。可以加上后缀可以加上后缀 u 或或 U 表示无符号整数,或者表示无符号整数,或者 l 或或 L 表示长表示长整数。整数。0 xb5Lu基本数据类型基本数据类型RAM整型变量整型变量声明变量声明变量(Declaration)变量在使用之前必须被声明。变量在使用之前必须被声明。声明语句的格式:声明语句的格式:举例举例基本数据类型基本数据类型 ,.;int counter;int width, height;short x, y;long number;变量声明创建了变变量声明创建了变量:为变量分配了量:为变量分配了存储空间。存储空间。height整型变量整型变量初始化初始化(Initial
10、ize)变量变量为变量赋一个初始值。为变量赋一个初始值。可以在声明语句中初始化变量。可以在声明语句中初始化变量。举例举例变量获得值的方法变量获得值的方法直接赋值直接赋值输入输入初始化初始化基本数据类型基本数据类型int counter = 0;int width = 352, height = 288;初始化式初始化式RAM288height整型变量整型变量输出变量的值输出变量的值可以使用可以使用printf()函数。函数。与与int类型对应的格式说明符是类型对应的格式说明符是%d。举例举例(cw02-02a.c)基本数据类型基本数据类型#include void main() int a,
11、b; a=32767; b=-32768; printf(a=%d,b=%dn, a, b);a=32767,b=-32768整数的溢出整数的溢出溢出溢出整数太大,超出了整数类型的数值范围。整数太大,超出了整数类型的数值范围。使用使用printf() 时与时与unsigned int类型对应的格式说明符是类型对应的格式说明符是%u。举例举例(cw02-02b.c)基本数据类型基本数据类型#include void main() int a, b; unsigned c, d; a = 2147483647; b = a+1; c = 4294967295; d = c+1; printf(a=
12、%d,b=%dn, a, b); printf(c=%u,d=%u, c, d);a=2147483647,b=-2147483648c=4294967295,d=0?整数的溢出整数的溢出溢出溢出结果分析结果分析结论结论a+1 的结果(的结果(2147483648) 超出了基本整型变量超出了基本整型变量 b 所能容纳(表所能容纳(表示)的数值范围(示)的数值范围(-21474836482147483647)。)。请分析请分析d的结果。的结果。基本数据类型基本数据类型0 1 1 1 1 1 1 1.1 1 1 1 1 1 11 0 0 0 0 0 0 0.0 0 0 0 0 0 0a(21474
13、83647)1 0 0 0 0 0 0 0.0 0 0 0 0 0 0a+1(2147483648)b(-2147483648)12加正数加正数减正数减正数字符的存储方式字符的存储方式字符编码字符编码计算机使用一种数字编码(整数)来表示字符,每一个字计算机使用一种数字编码(整数)来表示字符,每一个字符都对应一个特定的整数。符都对应一个特定的整数。常用的编码是常用的编码是ASCII(美国信息交换用标准码)。(美国信息交换用标准码)。7位二进制数,十进制码值范围从位二进制数,十进制码值范围从0到到127。一般用一个字节保存,最高位为一般用一个字节保存,最高位为0。字符的存储方式与整数相同字符的存储
14、方式与整数相同举例举例字母字母A的的ASCII码值为码值为65,那么在内存中以那么在内存中以65的二进制形式存储,的二进制形式存储,且占一个字节。且占一个字节。基本数据类型基本数据类型0100000101000001RAM字符的类型和字符变量字符的类型和字符变量C语言的字符类型:语言的字符类型:char占一个字节;占一个字节;可视为一个有符号的整数。可视为一个有符号的整数。举例举例(cw02-03.c)基本数据类型基本数据类型#include void main() char c1, c2; /声明字符变量声明字符变量 c1 = 97; /把一个整数赋值给字符变量把一个整数赋值给字符变量 c2
15、 = c1-32; /字符变量可以进行算术运算字符变量可以进行算术运算 printf(c1=%c,c2=%cn, c1, c2); printf(c1=%d,c2=%dn, c1, c2);c1=a,c2=Ac1=97,c2=65字符常量字符常量字符常量字符常量用单引号括起来的一个字符。用单引号括起来的一个字符。x 9 +C语言将字符常量视为语言将字符常量视为int类型。类型。举例举例(cw02-04.c)如果如果int类型为类型为16位,位,char类型为类型为8位,位,那么对于那么对于bc,将把,将把b和和c的的ASCII码值存储在两个字节中,码值存储在两个字节中,并把并把c赋值给变量赋值
16、给变量c2。注意:不同系统处理方式不同,结果不同。注意:不同系统处理方式不同,结果不同。基本数据类型基本数据类型char c1, c2;c1=a;c2=bc;0 1 1 0 0 0 0 1c10 1 1 0 0 0 1 1c20 1 1 0 0 0 1 10 1 1 0 0 0 1 0bcLH97999998字符常量字符常量转义字符转义字符(escape character)指代一些特殊的字符。指代一些特殊的字符。(打印不出来的字符)(打印不出来的字符)举例举例(cw02-05.c)基本数据类型基本数据类型a 警报警报 反斜杠(反斜杠()b 退格退格? 问号(问号(?)f 走纸走纸 单引号(单
17、引号()n 换行换行“ 双引号(双引号(”)r 回车回车ooo 八进制值(八进制值(o表示一个八进制数字)表示一个八进制数字)t 水平制表符水平制表符xhh 十六进制值(十六进制值(h表示一个十六进制数字)表示一个十六进制数字)v 垂直制表符垂直制表符#include void main() printf(atbncbd100 x40n);abd浮点数的存储方式浮点数的存储方式浮点数浮点数浮点型数据在内存中按指数形式存放。浮点型数据在内存中按指数形式存放。例如:例如:314.15 = 3.1415102基本数据类型基本数据类型0 (3.14159)10 0 (2)10 数符数符 尾数部分尾数部
18、分 阶符阶符 阶码阶码 + 3.14159 10+2由此可见,尾数部分的宽度决定了有效由此可见,尾数部分的宽度决定了有效数字的个数(即精度),阶码部分的宽数字的个数(即精度),阶码部分的宽度决定了数值范围。度决定了数值范围。RAM科学计数法允许使用少量的科学计数法允许使用少量的数字表示很大范围的数和很数字表示很大范围的数和很小的数。小的数。浮点数的类型浮点数的类型浮点数也有多种类型浮点数也有多种类型类型名称及典型大小类型名称及典型大小基本数据类型基本数据类型类型名称类型名称类型说明符类型说明符字节数字节数有效数字有效数字数值范围数值范围单精度单精度float467(s)10-371038双精度
19、双精度double81516(s)10-30710308长双精度长双精度long double101819(s)10-4931104932S = 1参考参考仅供参考,实际值与所仅供参考,实际值与所使用的操作系统、编译使用的操作系统、编译系统、机器有关。系统、机器有关。数轴数轴0可表示的正数可表示的正数可表示的负数可表示的负数浮点型常量浮点型常量浮点型常量有两种形式:浮点型常量有两种形式:十进制形式十进制形式12.3 .65 0.指数形式:指数形式: 1.2e-2 .1E5 7E01.210-20.11057.0100默认类型是默认类型是double。可以加上后缀可以加上后缀 f 或或 F 表示
20、表示float类型,或者类型,或者 l 或或 L 表示表示long double类型,否则该常量是类型,否则该常量是double类型。类型。2.3f 1.2L .1E5f基本数据类型基本数据类型浮点型变量浮点型变量浮点型变量的声明和初始化浮点型变量的声明和初始化举例举例基本数据类型基本数据类型float radius;double x = 0.0, y = 0.0;不能写成:不能写成:double x = y =0.0;浮点型变量浮点型变量浮点数的输出浮点数的输出使用使用printf()函数函数float和和double对应的格式说明符为对应的格式说明符为%f、%e。举例举例(cw02-06.
21、c)基本数据类型基本数据类型#include void main() float f; double d; f=33333.33333f; d=33333.3333333333; printf(f=%fnd=%f, f, d);f=33333.332031d=33333.333333有效数字位数是有限的,在可有效数字位数是有限的,在可表示的有效位之外的数字被舍表示的有效位之外的数字被舍去。因此可能会产生误差。去。因此可能会产生误差。浮点数的舍入误差浮点数的舍入误差浮点数的舍入误差浮点数的舍入误差举例举例(cw02-07.c)基本数据类型基本数据类型#include void main() float a, b; a=123456.789e5; b=a+20; printf(a=%fnb=%f, a, b);a=12345678848.000000b=12345678848.000000?浮点数的舍入误差浮点数的舍入误差浮点数的舍入误差浮点数的舍入误差结果分析结果分析基本数据类型基本数据类型a=123456.789e5;b=a+20;a+20的理论值应该是:的理论值应该是:12345678920但是,一个实型变量能够保证的有效数字是但是,一个实型变量能够保
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒吧寻人活动方案
- 茶庄年会活动方案
- 高考会考试题及答案
- 高级防水考试题及答案
- 抚育技师考试题及答案
- 客户需求调研与问题解决方案
- 风景速描考试题及答案
- 我校招生宣传承诺书(3篇)
- 品牌宣传策略方案
- (正式版)DB15∕T 3355-2024 《规模化舍饲养羊主要疫病综合防治技术规程》
- GB/T 46150.2-2025锅炉和压力容器第2部分:GB/T 46150.1的符合性检查程序要求
- 2025年甘肃省高考历史真题卷含答案解析
- 中华优传统文化(慕课版)教案
- 2025年广东国家公务员申论考试真题及答案-地市级
- 2025广东广州市国资委选调公务员2人笔试模拟试题及答案解析
- 美容美发店2025年营销方案创新解析
- 国有企业十五五人力资源规划框架
- 档案知识培训课件
- 肱骨髁上骨折
- 2025年中药师证考试真题及答案
- 高一信息技术课件全套
评论
0/150
提交评论