第三章数据类型、运算符与表达式
c语言的数据类型、运算符和表达式
数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。
C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。
数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。
C 的数据类型分为基本数据类型和构造类型。
基本数据类型是系统定义的,用户可以直接使用。
构造类型由用户自行定义。
C 的数据类型如图所示。
C 标准没有规定各类数据所占用内存位数。
所以不同c 编译系统的各类数据所占用内存位数是不一样的。
上机使用时,应注意使用的c 编译系统的具体规定。
Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。
C语言程序设计教案第3讲 数据类型、运算符与表达式
<
>
2,实型变量的分类
说明: C并没有具体规定每种类型的长度 并没有具体规定每种类型的长度, 说明:ANSI C并没有具体规定每种类型的长度,精度和数值 范围.下面是常用的C 范围.下面是常用的C编译系统的情况 类 型 字节数 有效数字 最小取值范围 float 4 6~7 -3.4*10-38~ 3.4*1038 double 8 15~16 -1.7*10-308~ 1.7*10308 long double 16 18~19 -1.2*10-4932~1.2*104932
8
取反
<
>
2.
整型变量分类
基本类型: 基本类型:int 根据数值的范围分为: , 根据数值的范围分为:int,short,long , 根据有无符号(singed/unsigned)及范围可分: 及范围可分: 根据有无符号 及范围可分
类 型 举例: 举例: [signed] int unsigned [int] [signed] short [int] unsigned short [int] [signed] long [int] unsinged long [int]
C 数 据 类 型
构造类型 指针类型 空类型 void
定义类型 typedef
<
>
2
2.2 常量与变量
一,标识符
定义:用来标识变量名,符号常量名, 定义:用来标识变量名,符号常量名,函数 数组名,类型名, 名,数组名,类型名,文件名的有效字符序 列称为标识符.(即一个名字) .(即一个名字 列称为标识符.(即一个名字) 使用规则
32767,32767,-32768,8
<
C语言第3章数据类型、运算符与表达式ppt课件
数据类型、运算符与表达式
1
主要内容
一、C的数据类型 二、常量与变量 三、基本数据类型 四、运算符与表达式
2
一、C的数据类型
(一) 什么是数据类型? (二) C语言的数据类型有哪些?
3
(一) 什么是数据类型?
对数据的描述
对操作的描述
数据结构+算法=程序
C语言中以 “数据类型”形式存在
4
所谓数据类型是按被定义变量的性质,表示形 式,占据存储空间的多少,构造特点来划分的。
int NUM=20; sum=PRICE*NUM;
11
符号常量优点
1、含义清楚。 2、在需要改变一个常量时,能够做到“一
改全改”
12
(二)变量
概念
变量代表内存中具有特定属性的一 个存储单元,它用来存放数据,也 就是变量的值。
13
(1)变量名。每个变量都有一个名字 ──变量名,代表一个地址。 (2)变量值。在程序运行过程中,变 量值存储在内存中。在程序中,通过 变量名来引用变量的值。
#include <stdio.h>
void main() {
int student,age; int if=adrress=1; float score=90;
stadent=2; Age=20; printf("%d %d %d %f",if,student,age,score); }
本程序中有 几处错误?
(5)标识符的有效长度随系统而异,如果超 长,则超长部分被舍弃。VC++6.0中规 定最大长度为247个字符。
23
请选出下列正确的标识符 M.D.John , 12%gf ,1add ,_ce36 ,age& 5thclass, lotus-1-2-3 , cd*ef , float,
3 数据类型、运算符和表达式
三、整型数据
3.1.整型常量 整型常量即整常数按不同的进制区分, 整型常量即整常数按不同的进制区分 , 整型常数 有三种表示方法: 有三种表示方法:
十进制数: 以非0 220, 560, 十进制数: 以非0开始的数 如:220, -560, 45900 八进制数: 06; 0106, 八进制数: 以0开始的数 如:06; 0106, 十六进制数: 十六进制数: 以0X或0x开始的数 如:0X0D, 0XFF, 0x4e
一般情况下,符号常量名用大写、变量用小写。 一般情况下,符号常量名用大写、变量用小写。
3、符号常量的声明和使用 一般放在程序的前端, <…>在一块: 一般放在程序的前端,与#include < >在一块: #define 符号常量名 值 如:#define Zero 0 好处: 好处: 含义清楚 (#define Second 60) (#define (#define 一改全改 (#define PI 3.14)
3. 整型变量的溢出
main(){ i,j; int i,j; unsigned k,l,m; k,l,m; i=32767 32767; i=32767; j=i+1 j=i+1; l=65535 65535u l=65535u; m=l+2 m=l+2; printf("j=%d\n",j); printf("j=% n",j); printf("l=% n",l); printf("l=%u\n",l); printf("m=% n",m); printf("m=%u\n",m); }
3.2、整型变量 整型变量的分类:加上不同的修饰符 1 . 整型变量的分类 : 加上不同的修饰 符 , 整型变 量有以下几种类型; 量有以下几种类型; C 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:
3 数据类型.运算符与表达式
C语言程序设计
第6页
符号常量
一般来说,下列两种情况用符号常量比较方便。 1)当某一常数在程序中多处出现时,可事先定义一个符 号常量。 2)有时,程序中的常数是有意义的,但写一个具体数字,程 序的阅读者则很难明白该常数的意义,此时可定义一个符 号常量。 例如: # define PI 3.1415926 注意:1)表示常量的标识符一般用大写 2)不能给符号常量赋值 PI=6; 错误 思考题:使用符号常量的好处? 含义清晰;一改全改
C语言程序设计
第14页
3.4 实型数据 3.4.1 实型常量
注意:1)没有unsigned和signed 之分。 2)实型常量没有单、双精度数之分;但可以赋给 一个float型或double型变量。赋值时要注意有效 数字位数。 float a; a=12345.6789 (只能接受前7位) 3)C编译系统将浮点型常量作为双精度来处理
C语言程序设计
第11页
3.3.2 整型变量
有三种整型变量(int、short int、long int): 但也可以将变量的类型定义为无符号(unsigned int) 1)有符号基本整型:signed int signed int 2)无符号基本整型:unsigned int 3)有符号短整型: signed short int signed int 4)无符号短整型: unsigned short int unsigned short 5)有符号长整型: signed long int signed long long 6)无符号长整型: unsigned long int unsigned long
THE C PROGRAMMING LANGUAGE
第三章数据类型、运算符与表达式
设x的值为4,则表达式y=(++x)+(++x)+(++x)后,y的值是(D)。
A.12B.18C.16D.21下列数据中,为字符的是(D)。
A.‘AB’B."A"C.HowD.‘A'以下符号中,合法的用户标识符是(D)。
A. -pB. intC. 3abD. _xt_以下实型常量中,符合C语言语法的是(A)。
A. .5E-3B. 1.2E0.5C. E15D. 3.14.159E若有说明和语句:int a=5,b=6;b*=a+1;则b的值为(D)A. 5B. 6C. 31D. 36设C 语言中,int 类型数据占4个字节,则short 类型数据占(C)。
A.1个字节B.2个字节C.4个字节D.8个字节若x=3.5,a=2,y=2.5,b=3则表达式(float)(a+b)/2+(int)x%(int)y的值是()。
A.1.5B.2.5C.3.5D.2以下选项中不属于C语言的类型的是(D)。
A.signed short intB.unsigned long intC.unsigned intD.long short关于C语言数据类型的叙述,正确的是(C)。
A. 整型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型若a=12,则表达式a-=a的值为(A)。
A. 0B.12C.1D. 24若x=3.5,a=2,y=2.5,b=3则表达式(int)(a+b)/2+(int)x%(int)y的值是(D)。
A. 1.5B. 2.5C. 3D. 3.5若a是数值类型,则逻辑表达式(a==1)&&(a!=1)的值是(C)。
A.1B. 2C. 0D. 不知道a的值,不能确定若char x=97,则变量x对应(A)字符。
A. ‘a’B. ‘A’C. ‘9’D. ‘7’设C语言中,int类型数据占2个字节,则float类型数据占(C)字节。
C语言第3章(谭浩强)
void main( ) { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } 运行结果:a+u=22,b+u=-14 结论:不同类型的整型数据可以进行算 术运算。
位数 16
取值范围 -215-(215-1) -32768—+32767 -32768—+32767
Short [int] Long [int]
短整型 长整型
16 32
16 16 32
Unsinged int 无符号整型 Unsinged short [int] Unsinged long [int] 无符号短整 型 无符号长整 型
8
④大写字母与小写字母意义不同, 被认为是两个不同的字符。一般变 量名用小写字母表示。 注意:常量名常用大写、变量名常 用小写!
year Day a_12 _abcdef #123 .com $100 1999Y a=b 1_2_3 +abcedfghi ∏ -5 等
9
3、变量要先定义后使用
可以改为double型) void main( ) {float x;double y; x=123456.789;y=123456.789; printf(“%f, %f”,x,y);} 结果为: 123456.789062, 123456.789000
29
§3.5
字符型数据
一、字符常量 1、在C语言中字符型常量是用单引号括 起来的一个字符。 如:’a‟、’A‟、’3‟、’?‟、’ ’、 ’$‟等。 2、以‚\”开头的转义字符,如\n不代表 字母n,而是代表换行。
数据类型及运算
内存中存储形式
负数的补码 =反码+1 =原码取反+1
内存中存储形式 10
A B
整型数据在内存中的存储形式
----以有符号 2 字节整型为例 32767(215-1)的 16位编码 原码:01111111 11111111 反码:01111111 11111111 补码:01111111 11111111 内存中存储形式 -32767(1-215)的 16位编码 原码:11111111 11111111 反码:10000000 00000000 补码:10000000 00000001 内存中存储形式
A B
空类型void 3
3.2~3.3(1) 常量与简单变量–以数值型为例
• 常量: 在程序运行中,其值不变的量,如: 23.7, - 67 等。 • 变量: 在程序运行过程中,其值可以改变的量, 在内存中占据一定的存储单元。
变量a 150 50
A B
4
一、两类常量
常数常量和符号常量 常数常量 如-10, 3.14 符号常量: 用标识符表示的常量。符号常量用 预处理(宏定义)命令定义在函数之外。 定义形式: A B
C语言第03章--数据类型和表达式
char int
ch = 'a'; i = 1;
17
变量的属性
例:
int sum=10; 类型
内存存放说明: 内存存放说明: 存放说明 变量名 1001 sum 10 变量值
存储单元的地址
二、 变量
命名规则 在C中变量名 函数名 文件名 数组名 等均称标识符 变量名, 函数名, 文件名, 数组名, 变量名 标识符 (identifier), 可由字母 数字 下划线 字母,数字 下划线组成,且第一个必 字母 数字和下划线 须为字母或下划线 字母或 字母 下划线,前8或32个有效。 注意: 字母大小写敏感; 注意 字母大小写敏感 不可用关键字; 不可用关键字 不可出现空格; 不可出现空格 见名知意; 见名知意 如: a1与A1为不同的变量名 如: int, for, if 等 如: stu 1, a 1等 如: sum, sort 等
e前必须有数 前必须有数 字,e后必须 后必须 有整数
合法:0.123、.123、123.0、123.、0.0 合法: 、 、 、 、 错误: 错误 - 2.0e2.5 e8
(3)字符常量 字符常量 —— 用单引号括起来的一个字符或转义字符 括起来的一个字符或转义字符 一个字符或转义字符. 例: ‘A’, ‘o’ , ‘1’, ‘#’, ‘a’ 等
float
必转
char, short long unsigned int 低
double 高
自动类型转换
34
例:
若:i 为 int , f为float ,d 为 double e 为long
字节数
第三章 数据类型运算符与表达式
三、变量
3、变量值的存储 变量被定义以后,系统在运行时会为该变量分配一个相 应大小的存储空间,称为存储单元。 给变量赋值后,该变量对应的存储单元中会存放该值, 这个值称为变量的值。 那么变量的值在变量的存储单元中是如何表示的呢? (1)整数是以补码的形式存放的。 (正数的补码是其本身,负数的补码为原码按位取反加1) 如:int a=2, b; b= -2; a 00000000 00000010 b 11111111 11111110
(一)算术运算符和算术表达式
表达式的值: 表达式运算得到的最终结果为表达式的值。 也就是整个式子代表的值 如a=5,b=2; a+b 7
(二)赋值运算符和赋值表达式
赋值运算符:= 格式:变量=表达式 如:int a,b; 下面都是正确的赋值表达式 a=5; b=3; a=2+3; a=a+2; b=a*a; 赋值运算为“从右向左”结合的。 如x=y=z=3 它等价于:x=(y=(z=3))
第三章 数据类型运算符与表达式
信息管理系
3.0、C语言中标识符的概念
• 在程序中,由程序设计者使用的名字成为标 识符。标识符用以标志区分不同的东西。它 可以用作函数的名字、变量、常量的名字, 以及文件的名字等等。
一、C语言中的标识符分类
• 用户标识符 • 关键字(语句标识及类型标识)(P375附录II) 例如:real,main,char,int,float,double, long,if,for,switch,default,break等。 • 预定义标识符(函数名字等) 例如:define,include,printf,scanf,sin等。
2的原码表示:00000000 00000010 -2的补码表示:11111111 11111101+1=11111111 11111110
第三章 数据类型、运算符及表达式§31 字符及标识符
2关系运算符
比较两个操作数的大小的运算符,称为关系运算符。 关系运算的表达式,称为关系表达式。 例如, 3+5 > 7-4 关系表达式也有它的值。 如: 8 > 3, 该关系成立,因此关系表达式的值为真, 反之, 其值为假。 在C语言中,用数值1表示真,用数0表示假。 如,7 == 2,关系表达式为假,其值为0。 关系运算符的种类和表达式如下:
•
*C 语言提供的长整数的表示方法可以用来扩大整数的取值 范围. – 例如, 41l, 037l, 0x1fL 字母后面的l 或 L ,表示该数是长常数., 上面三个数,分别是十进制、八进制、十六进制长整数。 一个在整数中放不下的普通整数也被作为长整数,
因此, 把其后紧跟有 l 或 L 的整数叫显式长整数. • 在16位字长的机器上,长整数的位数是 32 位 ( 增长一倍 )。 故长十进制整数取值范围为 -2147483648 到 2147483647。 (2)整型变量: • 基本整型 int 如: int x; • 长整型 long 如: long int y; 或 long y ; • 无符号 unsugend 如: unsigend int z; 或 unsigend z。
• 关键字
具有固定意义的标识符,用户不能用作为自己的标识符, 它们共有32个,除符号常量外都用小写字母表示,就其用途 分五类。 (1) 数据类型 int char float double short ... (2) 存储类型 extern static register auto typedef (3) 控制语句 if else for while do .... (4) 运算符 sizeof (5) 符号常量 EOF BOF .... *它们的含义后面将会络续提到。 * 用户定义的标识符,不能和关键字同名。
C3数据类型与运算规则
若 int a=5,b;
b=(a++)+(a++); b= 10 a= 7
b=(++a)+(++a); b=(--a)+(a--);
b= 14 a= 7 b= 8 a= 3
34
自增、自减运算(4)
关于++,--
在一行语句中最好只出现一次++,--,多了可读 性会很差;
C语言中允许编译程序自由重排表达式的顺序, 以产生最优代码,因此语句过于复杂时,采用 不同的编译程序编译时,可能会产生不同的运 算结果。
3
3.1 数据与数据类型(2)
数据:是程序加工、处理的对象,也是加工的结果; 数据类型:具有同样性质(能够作同样的操作,采用
同样的编码方式等)的数据集合称为数据类型; 每种数据类型都有固定的表示方式,也就确定了可能
表示的数据范围和在内存中的存放形式; C语言为每个类型定义了一个标识符,称为类型名,如
C语言程序设计
(三)
计算机学院 裴明涛
1
第三章 数据类型与运算规则
3.1 数据与数据类型 3.2 C语言的基本数据类型及其表示 3.3 算术运算与赋值运算 3.4 位运算 3.5 其他运算 3.6 混合运算及数据类型转换
2
3.1 数据与数据类型(1)
如何描述上述表达式中的数据、运算符号和运 算过程?
先说明,再赋值;
int x,y; x = 10, y = 30;
说明变量的同时对变量赋初值;
int x = 10,y = 30;
不初始化会怎样?
24
3.3 算术运算与赋值运算
C语言中的运算规则 算术运算符与算术表达式 自增、自减运算 赋值运算符和赋值表达式 组合赋值运算符和组合赋值表达式
C语言教程第3章 数据类型、运算符与表达式
注意以下几点:
(4) 一个整常量后面加一个字母u,认为 是unsigned int型,如12345u,在内存 中按unsigned int规定的方式存放(存储 单元中最高位不作为符号位,而用来存 储数据,见图2.4(b)。如果写成-12345u, 则先将-12345转换成其补码53191,然 后按无符号数存储。
int a; unsigned int b;
一个整数(以13为例)在存储单元中 的存储情况
3. 整型变量的定义
int a,b; (指定变量a、b为整型) unsigned short c,d; (指定变量c、d为无符号短整型) long e,f; (指定变量e、f为长整型)
例3.2整型变量的定义与使用。
字符型变量用来存放字符常量,请注 意只能放一个字符,不要以为在一个字符 变量中可以放一个字符串(包括若干字符)。 字符变量的定义形式如下: char c1,c2;
c1='a';c2='b';
3.5.3 字符数据在内存中的存储 形式及其使用方法
字符的相应的ASCII代码放到存储单元中
例3.6向字符变量赋予整数。
单精度 ( float 型 占4B) 双精度 ( double 型 占8B )
C语言第3章数据类型、运算符、表达式
例如
➢字符常量‘a’占一个字节 ➢字符串常量"a" 占2个字节
‘a’ → “a” →
0110 0001 ……
0110 0001 0000 0000
(97)10
(97)10 (0)10
7.变量赋初值
变量赋初值
C语言允许定义变量时赋予初值。
➢int i = 6;
也可对某个变量赋初值:
➢int a, b, c = 6;
如: 0x16, 0x28
4.整型数据
整型变量
分类:
➢基本型 用“ int ”定义; ➢短整型 用“ short int ”或 “ short ”定义; ➢长整型 用“ long ”或 “ long int ”定义; ➢无符号型 用“ unsigned ”定义,不存放符号;
整型变量定义方式
➢基本整型:int a, b, c; ➢短整型 : short int 或 short a, b, c; ➢长整型: long int 或 long a, b, c; ➢无符号型:unsigned a, b; unsigned short a, b
10+‘a’+1.5–8765.1234 ‘b’
8.各种数值型数据间的混合运算
转换方法(自动转换)
double float
高
long
unsigned
低 int char, short
图中“ ” 表示必定转换。如'a' +' b',先转换为int,结果为 int。
既使是同一种类型也按" "转换。
对于“++”和“--”的使用要避免二义性
10.赋值运算符和赋值表达式
C3-数据类型
3.5.3
字符型数据的存储方式及使用
字符数据在内存中存储的是字符的ASCII码 ─ 一 个无符号整数,其形式与整数的存储形式一样, 所以C语言允许字符型数据与整型数据之间通用。 (1)一个字符型数据,既可以字符形式输出,也 可以整数形式输出。(见50页例3.6) (2)允许对字符数据进行算术运算,此时就是对 它们的ASCII码值进行算术运算。 (见51页例3.7)
3. 长双精度: long double
3.4.3
实型常量的类型
–默认double型 –在实型常量后加字母f或F,认为它是float型
3.5
字符型数据
如 ‘a’ ‘A’ ‘?’ ‘\n’ ‘\101’
定义:用单引号括起来的单个普通字符或转义字符. 如 ‘A’——65 ‘a’——97 字符常量的值:该字符的ASCII码值 ‘0’——48 ‘\n’——10 转义字符:反斜线后面跟一个字符或一个代码值表示
2. 表达式和算术表达式
表达式的概念:用运算符和括号将运算对象(常量、变量和 函数等)连接起来的、符合C语言语法规则的式子,称为表 达式。
算术表达式:表达式中的运算符都是算术运算符。例如,3
+ 6 * 9、
(x + y) / 2 等,则称为算术表达式。
运算符的优先级与结合性:
(1)C语言规定了运算符的优先级和结合性。 所谓结合性是指,当一个操作数两侧的运算符具有相同的优先 级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结 合。 自左至右的结合方向,称为左结合性。反之,称为右结合性。 结合性是C语言的独有概念。除 单目 运算符、 赋值运算符和 条 件运算符是右结合性外,其它运算符都是左结合性。
C H I N A
c语言-数据类型、运算符与表达式
c语⾔-数据类型、运算符与表达式⼀、数据类型1、概念(1)标识符1.定义:⽤来标记常量、变量、函数及⽂件名字的字符序列。
2.构成规则:只能由数字、字母、下划线三部分组成,且不能以数字开头,并且严格区别⼤⼩写,不能定义为系统中存在的关键字。
(2)关键字c语⾔中具有特定含义、专门⽤作语⾔特定成分的⼀类标识符注:在C语⾔中,所有的关键字都有固定的意义,不能⽤作其它,且所有的关键字都必须⼩写(3)c的数据类型数据是操作的对象,数据类型是指数据的内在表现形式(代码、存储、运算)(4)常量和变量1. 常量【1】常量:在程序运⾏过程中,其值不能被改变的量 常量区分为不同类型(表⽰形式),如:12、1.0、‘a’【2】符号常量:⽤⼀个标识符代表的⼀个常量定义⽅法:#define 标识符常量#define PRICE 30#include <stdio.h>void main(){int num,total;num = 10;total = num * PRICE;printf("total = %d",total);}2. 变量【1】变量:其值是可以改变的量,它⽤标识符(变量名)来表⽰,在内存中占据⼀定的存储单元变量的定义⽅法:类型符标识符注意事项:<1>见名知意 <2>先定义后使⽤ <3>习惯上,符号常量名⽤⼤写,变量名⽤⼩写,以⽰区别【2】变量赋初值变量先定义,后使⽤,⼀般放在函数开头变量初始化:可以在定义时赋初值2、整型数据(1)整型常量1. 各种进制的整数表⽰⽅法⼗进制整数:由数字0~9和正负号表⽰. 如 123,-456,0⼋进制整数:由数字0开头,后跟数字0~7表⽰. 如 0123,011⼗六进制整数:由0x开头,后跟0~9,a~f,A~F表⽰. 如 0x123,0xff2. 整型常量的类型【1】整型常量的值在-32768~+32767范围内,编译器认为是int类型【2】整型常量的值超过上述范围,⽽在-2147483648 ~ +2147483647范围内,编译器认为是long类型【3】当系统定义short int与int占内存长度相同,则两种类型常量均可以赋给 int和short int型变量【4】在整型常量后⾯加⼤写L或⼩写l,则告诉编译器,把该整型常量作为long类型处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0~4294967295 3.4e-38~3.4e38 1.7e-308~1.7e308 -128~127 0~255
<
>
C 语 言 程 序 设 计
§3.2-3.6 常量与变量
标识符
定义:用来标识变量、常量、函数等的字符序列 组成:
只能由字母、数字、下划线组成,且第一个字母必须是字母或下 划线 大小写敏感 不能使用关键字
<
>
C 语 言 程 序 设 计
字节和位
内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1
0 1 2 3 4 5 6 7 8 9 10
7 6
第 三 章 数 据 类 型
5 4 3 2
……...
<
>
1
C 语 言 程 序 设 计
数值的表示方法——原码、反码和补码
C 语 言 程 序 设 计
常量
定义:程序运行时其值不能改变的量(即常数) 分类:
符号常量:用标识符代表常数 定义格式: #define 符号常量名 常数 一般用大写字母 例 符号常量举例 如 #define PRICE 30 是预处理命令,不是C语句 直接常量: #define PRICE 30 整型常量 > main() 运行结果:total=300 实型常量 > { 字符常量 > int num,total; 字符串常量 > num=10;
第三章 数据类型、运算符 与表达式
预备知识(略讲,自学) 数据类型(记忆) 常量与变量(掌握,包括2-6节) 各数值型数据间的混合运算(掌握) 运算符和表达式(难点,包括8-10)
C 语 言 程 序 设 计
§3.0 预备知识
计算机中数的表示及进制转换
数码、基与权
数码:表示数的符号 基:数码的个数 权:每一位所具有的值
<
>
C 语 言 程 序 设 计
§3.1 数据类型
数据类型总表
基本类型
短整型short
整 型
整型int 长整型long 单精度型float
双精度型double 字符类型char
实 型
数组
C 数 据 类 型 结构体struct 构造类型 共用体union
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作
例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16
例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2
第 三 章 数 据 类 型
0000 ~ 0 0001 ~ 1 0010 ~ 2 0011 ~ 3 0100 ~ 4 0101 ~ 5 0110 ~ 6 0111 ~ 7 1000 ~ 8 1001 ~ 9 1010 ~ A 1011 ~ B 1100 ~ C 1101 ~ D 1110 ~ E 1111 ~ F
实型常量的类型
默认double型 在实型常量后加字母f或F,认为它是float 型
第 三 章 数 据 类 型
<
字符常量
定义:用单引号括起来的单个普通字符或转义字符. 如 ‘a‟ „A‟ „?‟ „\n‟ „\101‟ 字符常量的值:该字符的ASCII码值
转义字符:反斜线后面跟一个字符或一个代码值表示一 如 ‘A‟——65, ‘a‟——97, 个字符。 ‘0‟——48 , „\n‟——10 转义字符及其含义: 例 转义字符举例
例 (1101001)2=(001,101,001)2=(151)8
例 (246)8=(010,100,110)2=(10100110)2
第 三 章 数 据 类 型
<
>
C 语 言 程 序 设 计
二进制与十六进制之间的转换 二进制转换成十六进制:从右向左,每4位一组 (不足4位左补0),转换成十六进制 十六进制转换成二进制:用4位二进制数代替每一 位十六进制数
11111111
01111111~ 10000000 (-127~+127)
00000000
01111111~ 10000000 (-128~+127)
负数补码转换成十进制数:最高位不动,其余位取反加1
第 三 章 数 据 类 型
例 补码:11111001 取反:10000110 加1: 10000111=-7
<
>
6
5
C 语 言 程 序 设 计
(用一字节表示数) 原码 反码 补码
+7
-7 +0
00000111
10000111 00000000
00000111
11111000 00000000
00000111
11111001 00000000
-0
数的范围
10000000 01111111~ 11111111 (-127~+127)
第 三 章 数 据 类 型
长度:最长32个字符 命名原则: 例:判断下列标识符号合法性 见名知意 sum Sum M.D.John day Date 3days 不宜混淆 如l与1、I, o与0 student_name #33 lotus_1_2_3 char a>b _above $123 < >
-2147483648~2147483647
0~65535 0~65535
16
16 32 32 64
无
实 型
第 三 章 数Biblioteka 据 类 型unsigned short unsigned long float double
有 有
字 有 8 char 符 8 unsigned char 型 无 说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:
第 三 章 数 据 类 型
total=num*PRICE; printf("total=%d",total); < > }
C 语 言 程 序 设 计
整型常量(整常数)
三种形式:
十进制整数:由数字0~9和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff
第 三 章 数 据 类 型
枚举类型enum
指针类型
空类型void
<
>
定义类型typedef
C 语 言 程 序 设 计
基本数据类型
类型 符号
有 整 型
关键字
(signed)int
所占位数 16 16 32
数的表示范围
-32768~32767 -32768~32767
(signed)short
(signed)long unsigned int
main() 例: 含义 转义字符 ‘\101‟ -----------„A‟ 转义字符 如 „\012‟
含义 -----------‟\n‟ 运行结果:(屏幕显示) „A‟-------‟\101‟-------‟\x41‟--------65 { „\376‟换行 -----------‟‟ \t „\x61‟ -----------‟a‟ \n A B C 水平制表 printf("\101 -----------‟0‟ „\60‟ \x42 C\n"); „\483‟ ----------()are you?” \b 垂直制表 退格 \v printf("I say:\"How are you?\"\n"); Isay:”How \C Program\ \r printf("\\C Program\\\n"); \f 回车 Turbo „C‟ 换页 < \a printf("Turbo \'C\'"); \\ 响铃 反斜线 \„ } \“ 单引号 双引号
\ddd
例 main() 3位8进制数代表的字符 <
{ printf(“Y\b=\n”); }
\xhh
2位16进制数代表的字符 运行结果: 屏幕显示:= 打印机输出:¥
C 语 言 程 序 设 计
字符串常量
定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 ‘\0’ 作为字 符串结束标志
各种进制之间的转换(整数)
二进制、八进制、十六进制转换成十进制 方法:按权相加 十进制转换成二进制、八进制、十六进制 原理: 方法:连续除以基,从低到高记录余数,直至商为0
第 三 章 数 据 类 型
N (a n a n 1 ...... a1 a 0 ) 2 例 把十进制数59转换成二进制数 例 把十进制数159转换成八进制数 例 把十进制数459转换成十六进制数 21 a 2 0 a n 59 n a n 1 2 n 1 ...... a1 2 0 2 8 159 余 1 7 余 16 (459 2 a n 1 22 29 n 19 n 1 余111 3 2 n 2 ...... a1 2 0 ) a 0 余余 8a 余余 16 14 2 余12 2 2 N 28 0 8 a 0 是16 的余数 余 11 2 7 0 余 2 3 7 2 1 2 0 余1 1 C B 3 2 1 (159)10=(237)8 余1 (459)10=(1CB)16 0 1 1 1 0 1 1
例
( ) 1 8 2 3 81 6 8 0 94) 136 8 ( 10
第 三 章 数 据 类 型