数据类型和赋值
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10页/共38页
整数的溢出
• 试图大于可表示的最大正整数时,出现 上溢出;此时,正数变负数;
• 试图小于可表示的最小负整数时,出现 下溢出,负数变正数(回忆期中考试)。
• 具体例子见 p44
第11页/共38页
实数型
• 两种表示:
– 直接表示:3.1415, 198.7, – 指数形式表示:123e3 等价于:123000.
宏定义 变量形式常量定义 变量定义
total=num*PRICE; 变量值修改 ch1=ch2-‘A’+‘a’;
输出结果
printf(“total=%f,ch1=%c\n”,total,ch1);
}
运行结果: total=37.500000, ch1=d
第4页/共38页
C 语言的数据类型
基本类型
C
32
0~4294967295
32
3.4e-38~3.4e38
64
1.7e-308~1.7e308
8
-128~127
8
0~255
说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:
第6页/共38页
整数类型 ( int )
• 整数:一种数值类型,在计算机上,凡数值都会有大小(最大
值/最小值)的限制。
第7页/共38页
例子说明
int min=-50; // int 为关键字,min 为变量标识符 unsigned int max=100
/* unsigned 和int 为关键字,max 为变量标识符*/
第8页/共38页
ANSI 规定C 中的各类整数
类型 [signed] int Unsigned int [signed] short Unsigned short Long Unsigned long
标识符
• 定义:用来标识变量、常量、函数等的字符序列。就是一 个名字
• 组成:
– 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划 线
– 大小写敏感(看成不同) – 不能使用关键字(关键字为系统专用,见第1讲) – 长度:没有限制,但一般不多于32个字符
例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123
Bit 取值范围 16 -32768 – 32767 (-215-215-1) 16 0 – 65535 (0 – 216-1) 16 -32768 – 32767 (-215-215-1) 16 0 – 65535 (0 – 216-1) 32 -2147483648 - 2147483646 32 0 - 4294967295
– 变量必定由标识符表示,在程序运行期间其值可变 – 常量可以用标识符表示,也可以直接表示,值不能
变化。
第3页/共38页
例 /*ch2_003.c*/ #define PRICE 12.5 main() { int const num=3; float total; char ch1,ch2=‘D’;
数 据
构造类型
类
型 指针类型
空类型void
整型
短整型short 整型int 长整型long
单精度型float
实型
双精度型double
字符类型char
数组
结构体struct 共用体union 枚举类型enum
定义类型typedef
第5页/共38页
类型 符号
关键字
所占位数
数的表示范围
(signed)int 有 (signed)short
• 几种不同的整数类型的表示(关键字): – int:一般表示的范围是16位二进制: -32768 —— 32767 – short:不比 int 字长大的整数类型 – long:不比 int 字长小的整数类型
• 两个修饰符:unsigned 和 signed,它们用于变 量类型(int/short/long)前面,分别表示有符号和 无符号整数,省缺时,隐含为signed
第1页/共38页
常量
• 定义:程序运行时其值不能改变的量(即常数)
• 类型:
例 符号常量举例(ch2_1.c)
–标识符表示(常用大写)
• 右边 PRICE
• 属于宏(不是C的语句)
–直接常量
• 右边的10
–变量形式的常量
• 带 const 修饰:num。
#define PRICE 30 // main() {
第9页/共38页
整数的特殊表示
• 8进制:以零 0 开始的百度文库字串
• 16 进制 以0x 开始的数字字母(A,B,C,D,E,F) 串。
• 10 进制 • 后缀:在整型数据后面带上后缀 U(u)、L(l),
分别表示无符号正数和长整数;也可以联合表 示(LU,Lu,lu,ul,uL ) 例:0xA11L, 071UL, 20U分别表示16进制长整 数,8进制无符号长整数和10进制无符号整数
int const num=10; // int total; total=num*PRICE; printf("total=%d",total); }
第2页/共38页
变量
• 概念:其值可以改变的量 • 变量名与变量值 • 变量定义的一般格式:
数据类型 变量1[,变量2,…,变量n];
• 变量与常量的比较:
• C 语言有三种类型的实数:
– float – double – long double
• 三种类型表示的精度各不相同。
第12页/共38页
实数大小的有关标准
• 上表给出了10进制有效位和范围的参考 标准,有必要先看其内存的表示:
+
.314159
1
数符 尾数(小数部分10 阶码(指数) 进制)表示数的精度 表示数的范围
16
-32768~32767
16
-32768~32767
整 型
无
(signed)long unsigned int
unsigned short
32
-2147483648~2147483647
16
0~65535
16
0~65535
unsigned long
实有 型有 字有 符 型无
float double char unsigned char
表示 = 3.14159 = 0.314159 101
第13页/共38页
• 注意: 在标准C(ANSI C)中,并没有规定尾数 (小数部分)有几位,阶码(指数)有 几位,甚至总的字节数也没规定,这一 切与具体的编译系统有关。因此,表3.2 中的值均为参考值(注意,所给的有效位 是指10进制有效位,究竟要占多少位二 进制位?)
整数的溢出
• 试图大于可表示的最大正整数时,出现 上溢出;此时,正数变负数;
• 试图小于可表示的最小负整数时,出现 下溢出,负数变正数(回忆期中考试)。
• 具体例子见 p44
第11页/共38页
实数型
• 两种表示:
– 直接表示:3.1415, 198.7, – 指数形式表示:123e3 等价于:123000.
宏定义 变量形式常量定义 变量定义
total=num*PRICE; 变量值修改 ch1=ch2-‘A’+‘a’;
输出结果
printf(“total=%f,ch1=%c\n”,total,ch1);
}
运行结果: total=37.500000, ch1=d
第4页/共38页
C 语言的数据类型
基本类型
C
32
0~4294967295
32
3.4e-38~3.4e38
64
1.7e-308~1.7e308
8
-128~127
8
0~255
说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:
第6页/共38页
整数类型 ( int )
• 整数:一种数值类型,在计算机上,凡数值都会有大小(最大
值/最小值)的限制。
第7页/共38页
例子说明
int min=-50; // int 为关键字,min 为变量标识符 unsigned int max=100
/* unsigned 和int 为关键字,max 为变量标识符*/
第8页/共38页
ANSI 规定C 中的各类整数
类型 [signed] int Unsigned int [signed] short Unsigned short Long Unsigned long
标识符
• 定义:用来标识变量、常量、函数等的字符序列。就是一 个名字
• 组成:
– 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划 线
– 大小写敏感(看成不同) – 不能使用关键字(关键字为系统专用,见第1讲) – 长度:没有限制,但一般不多于32个字符
例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123
Bit 取值范围 16 -32768 – 32767 (-215-215-1) 16 0 – 65535 (0 – 216-1) 16 -32768 – 32767 (-215-215-1) 16 0 – 65535 (0 – 216-1) 32 -2147483648 - 2147483646 32 0 - 4294967295
– 变量必定由标识符表示,在程序运行期间其值可变 – 常量可以用标识符表示,也可以直接表示,值不能
变化。
第3页/共38页
例 /*ch2_003.c*/ #define PRICE 12.5 main() { int const num=3; float total; char ch1,ch2=‘D’;
数 据
构造类型
类
型 指针类型
空类型void
整型
短整型short 整型int 长整型long
单精度型float
实型
双精度型double
字符类型char
数组
结构体struct 共用体union 枚举类型enum
定义类型typedef
第5页/共38页
类型 符号
关键字
所占位数
数的表示范围
(signed)int 有 (signed)short
• 几种不同的整数类型的表示(关键字): – int:一般表示的范围是16位二进制: -32768 —— 32767 – short:不比 int 字长大的整数类型 – long:不比 int 字长小的整数类型
• 两个修饰符:unsigned 和 signed,它们用于变 量类型(int/short/long)前面,分别表示有符号和 无符号整数,省缺时,隐含为signed
第1页/共38页
常量
• 定义:程序运行时其值不能改变的量(即常数)
• 类型:
例 符号常量举例(ch2_1.c)
–标识符表示(常用大写)
• 右边 PRICE
• 属于宏(不是C的语句)
–直接常量
• 右边的10
–变量形式的常量
• 带 const 修饰:num。
#define PRICE 30 // main() {
第9页/共38页
整数的特殊表示
• 8进制:以零 0 开始的百度文库字串
• 16 进制 以0x 开始的数字字母(A,B,C,D,E,F) 串。
• 10 进制 • 后缀:在整型数据后面带上后缀 U(u)、L(l),
分别表示无符号正数和长整数;也可以联合表 示(LU,Lu,lu,ul,uL ) 例:0xA11L, 071UL, 20U分别表示16进制长整 数,8进制无符号长整数和10进制无符号整数
int const num=10; // int total; total=num*PRICE; printf("total=%d",total); }
第2页/共38页
变量
• 概念:其值可以改变的量 • 变量名与变量值 • 变量定义的一般格式:
数据类型 变量1[,变量2,…,变量n];
• 变量与常量的比较:
• C 语言有三种类型的实数:
– float – double – long double
• 三种类型表示的精度各不相同。
第12页/共38页
实数大小的有关标准
• 上表给出了10进制有效位和范围的参考 标准,有必要先看其内存的表示:
+
.314159
1
数符 尾数(小数部分10 阶码(指数) 进制)表示数的精度 表示数的范围
16
-32768~32767
16
-32768~32767
整 型
无
(signed)long unsigned int
unsigned short
32
-2147483648~2147483647
16
0~65535
16
0~65535
unsigned long
实有 型有 字有 符 型无
float double char unsigned char
表示 = 3.14159 = 0.314159 101
第13页/共38页
• 注意: 在标准C(ANSI C)中,并没有规定尾数 (小数部分)有几位,阶码(指数)有 几位,甚至总的字节数也没规定,这一 切与具体的编译系统有关。因此,表3.2 中的值均为参考值(注意,所给的有效位 是指10进制有效位,究竟要占多少位二 进制位?)