- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
说明:如再用赋值语句给PRICE赋值是错的 PRICE=40; /* 错误,不能给符号常量赋值*/
运行结果: total=300
3.2 常量与变量
3.2.2 变量 标识符 • 变量代表内存中具有特定属性的一个存储单元 它用来存放数据,这就是变量的值 在程序运行期间,值可以改变 • 变量名实际上是一个以一个名字对应代表一个地址 在对程序编译连接时由编译系统给每一个变量名分 配对应的内存地址。 从变量中取值,实际上是通过变量名找到相应的内 存地址,从该存储单元中读取数据。
例3.1 符号常量的使用 说明: 程序中用#define命 #define PRICE 30 令行定义PRICE代表常量30, #include <stdio.h> 可以和常量一样进行运算 void main ( ) 优点: 含义清楚、一改全改 { int num, total; num=10; 符号常量: 用一个标识符代 total=num * PRICE; 表一个常量。符号常量的 printf(″total=%d\n″, 值在其作用域内不能改变, total); 也不能再被赋值。 }
0.123456e3,
0.0123456e4, 0.00123456e
其中的1.23456e3称为“规范化的指数形式”。
3.4 浮点型数据
3.4.2 浮点型变量 (1)浮点型数据在内存中的存放形式 一个浮点型数据一般在内存中占4个字节 (32位)。与整型数据的存储方式不同,浮点 型数据是按照指数形式存储的。系统把一个 浮点型数据分成小数部分和指数部分,分别 存放。指数部分采用规范化的指数形式。
(signed)int (signed)short (int ) (signed) long (int) unsigned int unsigned short (int) unsigned long (int)
注意:括号表示其中的内容是可选的.
3.3
整型数据
整型变量的分类
3.3
整型变量的分类
• 整数类型的有关数据:
(3) 如果所用的C版本(如Turbo C)分配给short int与 int型数据在内存中占据的长度相同,则它的表数范围与 int型相同。因此一个int型的常量同时也是一个short int型常量,可以赋给int型 或 short int型变量。
3.3
3.3.3
整型数据
整型常量的类型
(4) 一个整常量后面加一个字母u或U,认为是unsigned int型,如12345u,在内存中按unsigned int规定的方式 存放(存储单元中最高位不作为符号位,而用来存储数 据)。如果写成-12345u,则先将-12345转换成其补码 53191,然后按无符号数存储。
第三章
数据类型、运算符与表达式
完整的程序设计
数据结构+算法+程序设计方法+语言工具
灵魂
对象
工具
• 数据是程序命令操作的对象 • 数据的类型是指根据表达形式的不同而划分的类别 • 根据这些数据类型可以构造出不同的数据结构
3.1 C语言的数据类型
整型 基本类型 字符型 int char 单精度实型 float
(5) 在一个整常量后面加一个字母l或L,则认为是long int型常量。 例如: 123l 432L 0L 用于函数调用中。 注意: 如果函数的形参为long int型,则要求实参也 为long int型。
3.4 浮点型数据
3.4.1浮点型常量的表示方法 两种表 示形式 小数 指数 0.123Leabharlann 1.23e-1习题
• 1.下列常量中,不属于整型常量的是 (A)012L (B)12 (C)0x12 (D)12.0 2.下列常量中,不属于实型常量的是 (A)12. (B)12L (C)-12E-1 (D)0.12E1
D 。
B。
习题
1.数据占用的内存字节数称为该数据 的 数据长度 。 • 2.C语言规定常量的类型有:整型、实 型、 字符 型和 字符串 型。 • 3.用十进制表示整型常量-017和-0xf, 分别为 和 。 -15 -15
实型(浮点型)
枚举类型
数据类型 用户定义 数据类型
双精度实型 double 数组类型
结构体类型 struct 联合类型 union
构造类型
指针类型
枚举类型 enum
void
非基本类型
空类型(无值类型)
3.2 常量与变量
3.2.1 常量和符号常量 • 在程序运行过程中,其值不能被改变的量称 为常量 • 常量区分为不同的类型: 整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 ‘a’, ‘b’,‘2’ 字符串 ‘a’, ‘ab’,‘1232’
行算术运算
例3.3 整型数据的溢出 运行结果: 32767,-32768 #include <stdio.h> void main() { int a,b; a=32767; b=a+1; printf(“%d,%d\n”,a,b); }
说明:数值是以补码表示 的。一个整型变量只能 容纳-32768~32767范围 内的数,无法表示大于 32767或小于-32768的数。 遇此情况就发生“溢 出”------最小值开始 计数。
3.2 常量与变量
注意:
• 编译系统将大写字母和小写字母认为是两个不
同的字符。 • 建议变量名的长度最好不要超过8个字符。 • 在选择变量名和其它标识符时,应注意做到 “见名知意”,即选有含意的英文单词(或其
缩写)作标识符。
iMyCar
• 要求对所有用到的变量作强制定义,也就是
“先定义,后使用” 。
3.3
整型数据
数值是以补码表示的:
1. 正数的补码和原码相同
2. 负数的补码:将该数的绝对值的二进制形式按位 取反再加1。例如:求-10的补码:
最左面的一 位表示符号
整型变量的分类
数据类型修饰符(modifier) Short long signed unsigned
共六种
有符号基本整型 有符号短整型 有符号长整型 无符号基本整型 无符号短整型 无符号长整型
3.3
3.3.3
整型数据
整型常量的类型
(1)一个整数,如果其值在-32768~+32767范围内,认为
它是int型,它可以赋值给int型和 short int型变量。 (2) 一个整数,如果其值超过了上述范围,而在2147483637~+2147483647范围内,则认为它是为长整型。 可以将它赋值给一个long int型变量。
类型
基本型 短整型
类型说明符
int short
长度
2字节 2字节 2字节 4字节
数的范围
-32768~32767 -215~215-1 21亿 0~65535 0~65535 0~(232-1)
长整型
无符号整型
long
unsigned
4字节 -231~231-1
无符号短整型 unsigned short 2字节 无符号长整型 unsigned long
3.4 浮点型数据 (2) 浮点型变量的分类 浮点型变量分为单精度(float型)、双精度(double 型)和长双精度型(long double)三类形式。
类型 float 位数 32 数的范围 10-37 ~ 1038 有效数字 6~7 位
double型
long double
64
128
10-307~10308
作业
3.3 3.4
(2) (3) (6)
(7)
3.5 字符型数据
3.5.1 字符常量 (1)用单引号包含的一个字符是字符型常量 (2)只能包含一个字符
‘a’,’A’, ‘1’ ‘abc’、“a”
3.5 字符型数据
有些以“\”开头的特殊字符称为转义字符 \n \t \b \r \\ \ddd 换行 ASCII代码 10 横向跳格/水平制表 9 退格 8 回车 13 反斜杠 92 表示1到3位八进制数字。 如 \101 A \xhh 表示1到2位十六进制数字. 如 \x07 响铃 注意: \0 \00 \000 ?
注意:字母e(或E)之前必须有数字,且e后面的指数 必须为整数 1e3、1.8e-3、-123e-6、-.1e-3 e3、2.1e3.5、.e3、e
3.4 浮点型数据
规范化的指数形式:
在字母e(或E)之前的小数部分中,小数点左边 应有一位(且只能有一位)非零的数字. 例如: 123.456可以表示为: 123.456e0, 12.3456e1, 1.23456e2,
例3.5 转义字符的使用 跳到下一 #include <stdio.h> void main()
个tab位
• 显示屏上的运行结果: f gde h j k
回车
{ printf(″ ab c\t de\rf\tg\n″);
printf(″h\ti\b\bj k\n″); }
退格 \r 回到开头, 此后字符取代 原字符
10 -4931~104932
15~16位
18~19位
运行结果: 例3.4 浮点型数据的舍入误差 12345678848.000000 #include <stdio.h> void main() 说明:一个浮点型变量只 {float a,b; 能保证的有效数字是7位 有效数字,后面的数字 a = 123456.789e5; 是无意义的,并不准确 b = a + 20 ; 地表示该数。应当避免 printf(“%f\n”,b); 将一个很大的数和一个 } 很小的数直接相加或相 减,否则就会“丢失” 小的数
3.4 浮点型数据
3.4.3 浮点型常量的类型
C编译系统将浮点型常量作为双精度来处理。
例如:f = 2.45678 * 4523.65
系统先把2.45678和4523.65作为双精度数,然后
进行相乘的运算,得到的乘也是一个双精度数。最
后取其前7位赋给浮点型变量f。如是在数的后面加
字母f或F(如1.65f, 654.87F),这样编译系统就 会把它们按单精度(32位)处理。
3.2 常量与变量 变量命名的规定:C语言规定标识符只能由字母、
数字和下划线三种字符组成,且第一个字符必须 为字母或下划线。
例:sum,_total, month, Student_name,
lotus_1_2_3,BASIC, li_ling
M.D.John, ¥123,3D64,a>b 一般用小写 字母表示
3.3
整型数据
例如:整数13在内存中实际存放的情况:
3.3
整型数据
3、整型变量的定义: C规定在程序中所有用到的变量都必须在程序中定 义,即“强制类型定义”。 例如: int a,b(指定变量a、b为整型) unsigned short c,d;(指定变量c、d为无符 号短整型) long e,f;(指定变量e、f为长整型)
3.3
整型数据
3.3.2 整型变量 (1)整型数据在内存中的存放形式 数据在内存中是以二进制形式存放的。 如: int i; /* 定义为整型变量 */ i=10; /* 给i赋以整数10 */
注意: • 十进制数10的二进制形式为1010,Turbo C 2.0和Turbo C++ 3.0为一个整型变量在内存中分配2个字节的存储单 元(不同的编译系统为整型数据分配的字节数是不相同的, VC++ 6.0则分配4个字节)。 • 数值是以补码(complement) 表示的。
3.3
整型数据
3.3.1整型常量的表示方法 整型常量即整常数。在C语言中,整常数可用 以下三种形式表示: (1)十进制整数。 如:123, -456 4。 (2)八进制整数。以0头的数是八进制数。 如:0123表示八进制数123,等于十进制数 83,-011表示八进制数-11,即十进制数-9。 (3)十六进制整数。以0x开头的数是16进制数。 如:0x123,代表16进制数123,等于十进制 数 291。 -0x12等于十进制数-10。
第三章数据类型运算符与表达式数据结构算法程序设计方法语言工具完整的程序设计对象灵魂工具根据这些数据类型可以构造出不同的数据结构31c语言的数据类型数据类型构造类型指针类型空类型无值类型void数组类型结构体类型struct联合类型union基本类型整型int字符型char实型浮点型单精度实型float双精度实型double用户定义数据类型非基本类型枚举类型枚举类型enum32常量与变量321常量和符号常量在程序运行过程中其值不能被改变的量称为常量常量区分为不同的类型
例3.2 整型变量的定义与使用 运行结果: #include <stdio.h> a+u=22, void main() b+u=-14 { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf(″a+u=%d,b+u=%d\n”, c,d); } 说明: 可以看到不同种类的整型数据可以进