第三章数据类型与运算规则
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,
C语言课件第三章
三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }
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 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:
VF课件
数组一旦被定义之后,该数组的每个元素的初值为逻辑假 .F.,可以使用有关的命令给数组元素赋值。 示例:DIMENSION AB(3),C[5],D(2,3) 示例 2. 数组的赋值 数组元素的赋值 赋值与普通内存变量一样,可以通过STORE命 赋值 令或赋值号“=”来实现。 示例: 示例: 给二维数组X和一维数组Y进行赋值。 DIMENSION X(3,4),Y(3) STORE 5 TO X Y(1)=325 Y(2)=“ABC” Y(3)=.T.
(2)数值型: (简写为N) 数值型: 数值型 数值型数据可以进行算术运算,用来表示一个数量 的大小。它包含0~9的阿拉伯数字、小数点与正负号, 长度为1~20位。在内存中,数值型数据占用8个字节。一 般将需要参加数学运算的数据定义成数值型。 例如:538,-10.5等 可以采用科学记数法形式书写。如6.757E4 (3)浮动型数据 浮动型数据(简写为F) 浮动型数据 浮动型数据即浮点数据,在功能上与数值型数据等价,最大 长度为20位,也占用8个字节的存储空间。使用它的主要目的 是使计算机具有较高的精度。它由尾数、阶数和字母E组成。 只能用于数据表中字段的定义。
建立内存变量文件 格式:SAVE TO <内存变量文件名> [ALL LIKE/ALL EXCEPT <通配符>] 说明:内存变量文件的扩展名为.MEM 示例:SAVE TO AA SAVE TO MM ALL LIKE X* SAVE TO BB ALL EXCEPT ?Y 内存变量文件的调入 格式:RESTORE FROM <内存变量文件名> [ADDITIVE] 说明: ADDITIVE选项的作用是保留现有内存变量 示例:RESTORE FROM MM RESTORE FROM BB ADDITIVE
VFP-03第三章-数据与数据运算
其中?表示在下一行上显示若干个数据的值;
??表示在同一行上显示若干个数据的值。 3、逻辑型常量 表示逻辑判断结果,只有“真”或“假”两种结果, 定界符为圆点,内存中占用一个字节。
常量表示形式为:.T.、.t.、.Y.、.y. 表示真,
.F.、.f.、.N.、.n.表示假。
4、日期常量
用于表示日期,其规定格式以{mm/dd/yyyy}表示。定 界符:{ } 常用分隔符:斜杠(/)、连字符(-)、句点(.)和 空格。
-:两字符串首尾相连,且将首字串尾部的空格移至新
串的尾部。
$(字符串包含运算符):
使用格式:<子字符串>$<字符串> 若字符串包含子字符串,其值为.T.,否则为.F.。 举例: “计算机 ” + “软件” 结果值为:“计算机 软件 “ “计算机 ” - “软件” 结果值为:“计算机软件 ”
三.时间日期表达式
list memory like y*
三.字段变量
字段变量是数据库管理系统中的一个重要概念。它与 记录一纵一横构成了数据表的基本结构。 一个数据库是由若干相关的数据表组成,一个数据表 是由若干个具有相同属性的记录组成,而每一个记录又是
由若干个字段组成。
字段变量就是指数据表中已定义的任意一个字段。
字段变量的类型有数值型、浮点型、整型、双精度型、
设置日期格式的命令
●设置日期分隔符:set mark to [分隔符] 可设置为:连字符(-)、句点(.)和空格;系统默认 的分隔符为:斜杠。 如:Set Mark to “-” 用字串定界符括起来。
●设置日期显示格式:set date [to] 格式
格式:AMERICAN、USA、MDY、GERMAN、 BRITISH、FRENCH、ITALIAN、DMY、ANSI、JAPAN、 YMD 主要设置日期是:年-月-日、月-日-年、日-月-年
数据类型及运算
内存中存储形式
负数的补码 =反码+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
第三章 数据类型运算符与表达式
三、变量
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语言课件_第三章_数据类型
引言 1、计算机中的数据不单是简单的数字,所有计算机处理的信息,包括文字、 声音、图像等都是以一定的数据形式存储的。数据在内存中保存,存放的情况 由数据类型所决定。
2、数据类型即数据结构,决定了数据在内存中的存储形式。不同类型数据在 内存中所占存储空间的大小不同(同一类型数据在不同字长的计算机中所占存 储空间大小也不同),从而导致不同类型可存放数据的大小范围不同。但不论 何种数据类型,其在内存中都是以补码的形式存在的。 3、C语言提供的数据类型包括基本类型、构造类型、指针类型和空类型等,由 这些数据类型可构造出其它更复杂的数据结构(eg:表、栈、树等)。
C、存储:2个字节(Byte)即16位(bit),补码形式
第三章 数据类型
二、整型数据(描述的数据是整数的一个子集) 2、整型变量(分为基本整型、拓展整型) (1)基本整型 D、运算操作 a、算术运算 +(加法) -(减法) *(乘法) /(除法) %(求余)
运算规则:除了除法外,与数学中相同 eg:1+1=2 1-1=0 1*1=1 5%3=2
注意:由于字符在内存中是以二进制存放的,因此char和int可相互赋值,但必 须在一定范围内(0~255)。 (自学:P50 例3.6 向字符变量赋予整数、P51 例3.7 大小写字母的转换)
eg:char 型与 int 型互相赋值
#include <stdio.h> void main( )
{ int i; char c;
问题:用什么变量来存放字符串?
第三章 数据类型
五、变量与常量的定义 (符号常量和变量必须先定义,后使用) 1、常量(符号常量) 通过宏定义预处理命令来实现。 格式: #define 标识符 常量 例如: #define PRICE 30
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.赋值运算符和赋值表达式
第三章 数据类型及其运算
第三章 数据类型及其运算知识点提示1.C 的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
2.C 的运算符种类、运算优选级和结合性。
3.不同类型数据间的转换与运算。
4.C 表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。
知识点一.C 的数据类型1.数据类型的概念数据类型在高级语言中的实质是为解决数据在程序中的表示(常量)、内存单元的分配(变量)及其加工的描述(算符和表达式)这三个基本问题。
在高级语言中,任何数据都是有类型的,即不同类型的数据有不同的存储属性及操作属性,将数据按其操作属性和存储属性进行分类,就是数据类型的概念。
2.C 的数据类型在C 语言中,数据类型分为基本类型、导出类型(构造类型)、空类型、指针类型。
基本类型有:整型、实型、字符型、枚举类型。
数据有常量与变量之分,它们分别属于这些类型。
3.常量在程序运行过程中,其值不发生变化的量,也就是在程序中直接给出的数据,在词法记号中属于文字。
常量分为字面常量(直接常量)和符号常量。
在C 语言中,符号常量是用无参数的宏定义实现的,即用标识符代表某一字面常量,其定义形式为:#define 标识符(宏名) 字面常量4.变量在程序运行过程中,其值可以改变的量。
变量实质在C 中是为解决不同类型数据在计算机中存储时内存单元的分配问题。
一个变量对应相应的内存单元,且变量有对应的变量名,变量名实际上是内存单元的符号地址。
将变量对应内存单元所存放的当前值,称为变量的值,对变量的访问是按地址进行的,即通过变量名找到相应内存单元的地址,对其存储单元进行读、写操作。
记住:变量的类型、变量名、变量的值是其三大基本属性。
5.整型数据·整型常量的表示方法十进制整数:如123,-456等。
八进制整数:以0为前导的八进制整数。
如0123、-03467,而0879非法。
十六进制数:以0x 为前导的十六进制整数。
CJA03
long [int]
signed long [int] unsigned long [int] float double
它占内存单元不是5个字符,而是6个字符,最后一 个字符为’\0’。但在输出时不输出’\0’。
附:vc++中的基本数据类型
类型名 char 字宽 1 (1B) 范围 -128~127
signed char
unsigned char short [int] signed short [int] unsigned short [int]
3.5 字符型数据(4)
3.5.4 字符串常量
字符串常量是用一对双引号括起来的字符序列。 如:"How do you do ." "CHINA" "a" "$135.45" 可以用printf语句输出一个字符串常量: printf(“How do you do.\n"); 注意:字符常量与字符串常量的区别: "a" „a‟ a \0 a
3.4 实型数据(2)
3.4.2 实数变量 1. 实型数据在内存中的存放形式
数符 小数 指数符号 指数
+
0.123456
小数部分
-
2
指数部分
2. 实数变量的分类
单精度型(float) 4B 双精度型(double) 8B 长双精度型(long double) 16B 10-38~1038 10-308~10308 10-4931~104932 6~7 15~16 18~19
1 1 1 1 1 11 1
1 1 1 1 1 1 1 1
c语言 第3章 数据类型及其运算
– unsigned int型常量 123u、 123U
• 整型常量的类型
根据其值所在范围确定其数据类型
在整型常量后加字母l或L,认为它是long int 型常量
例:12与12L
2015/12/23 25
整型常量的表示形式
• 十进制形式 :[±]若干个0~9的数字
如:100,-50, 0
• 八进制形式: [±]以0开头的若干个0~7数字
• 无符号长整型
unsigned long [int] ;
2015/12/23
20
二进制存放与溢出
(1)10= (0000 0000 0000 0001)2补码
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
(-1)10= (1111 1111 1111 1111)2补码
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
00000000 00000000 00000001 01010100 5 例 :01736L 为long int 型 2 4
00000000 00000000 00000011 11011110
1
2015/12/23
7
3
6
27
何谓类型溢出(Overflow)?
• C语言提供的任何类型都有取值范围。当向其赋超 过此范围的数值,就会产生数值溢出,得到一个不 正确的结果。 • 例如:short int的范围是-32768~32767 – 如果超出取值范围,给它一个小于-32768或者 大于32767的数会如何呢?
(65535)10=(1111 1111 1111 1111)2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§3-2 常量与常量定义
常量
➢ 整型常量,即整常数(3种形式)
>
10进制 :0 ~9
8进制 :0 ~7 以数字0开头
16进制 :0 ~9,A~F/a~f,以0x或0X开头
➢ 实型常量,即浮点数(2种形式)
十进制 :符号、整数、小数点和小数 >
指数:用e或E和表示指数部分
➢ 字符常量
>
➢ 字符串常量
>
第三章数据类型与运算规则
➢ 整型常量的不同表示方法:
10进制: 100
-8
0
8进制: 010 024 0100
16进制: 0x38 0x10 0X10
+123 0XFF 0xa
➢ 整型常量的类型:
例 30000 为int型
1.在整型表示范围之内,根据值大小默655认36 类为型long int 型
-.1e-3 .1E-10 等价于:-0.1*10-3 0.1*10-10
➢ 实型常量的类型
默认double型; 在实型常量后加字母f或F,认为它是float 型 长双精度型常量由常量值后跟L或l来表示
< 第三章数据类型与运算规则
➢ 字符型常量:用一对单引号括起来的单个(可显示)字 符 实例:’A’ ’g’ ’#’ ’0’ ’2’ ’+’ ’,’ ’;’ ’(’ ’)’
➢ 字符定界符:单引号 ’ ➢ 字符型数据的存储格式:
每个字符占用一个字节,存储该字符的ASCII码(见书附录)
每个字符:惟一的次序值( ASCII码)
•字符 ASCII码
内存
•'A'
65
0100 0001
•'B'
66
0100 0010
➢字符的数值特征
字符可以当整数用,
ASCII码
第三章数据类型与运算规则
printf(”\t”);
输出格式控制
回车(ASCII码为13)
走纸换页
字符\(ASCII码为92) ’\\’ 表示字符 \
单引号
’\’’ 表示字符 ’
输
双引号
well
int
16(2B) 16
32
32
36
Short
16(2B) 16
16
16
36
Long
32(4B) 32
32
32
36
Unsigned int 16(2B) 16
32
32
36
Unsigned short 16(2B) 16
16
16
36
Unsigned long 32(4B) 32
32
32
36
第三章数据类型与运算规则
基本概念
➢ 数据 程序操作的对象和产生的结果。
➢ 数据类型 指数据的内在表现形式,亦指数据在计算机内部
的存储形式(占用的内存单元数量、编码方式、取 值范围等)。 ➢ 常量
在程序运行过程中不允许改变的量。 ➢ 变量
在程序运行过程第三中章数允据许类型改与运变算规的则 量。
C语言的数据类型
本章
基本类型
指针类型 构造类型 无值类型
字符型 char
整型 int 浮点型
数组
单精度 float 双精度 double
结构 struct
联合 union
枚举 enum 第三章数据类型与运算规则
基本数据类型
➢ C语言基本数据类型有四种:
✓ 字符型
char
✓ 整型 ✓ 单精度浮点型 ✓ 双精度浮点型
int float double
类型说明符
2.在常量后面加l或L,则认为它是long int型
例如:都是long int型常量
10进制:-123L 0L 432l
8进制: 010L 024L 0100L 16进制: 0x38L 0x1000L 0XFFl 0xa0000l
第三章数据类型与运算规则
➢整型数据的存储
整数占2个字节 1 000 0001 1000 0001 0 000 0001 1000 0001
型 有 double
64
1.7e-308~1.7e308
字 有 signed char
8
-128~127
符 无 unsigned char
8
0~255
说型明:数据类型所占字节数随机器硬件不同而不同:
第三章数据类型与运算规则
不同类型机器所对应的不同形式整型数据的存储情况
IBM PC PDP_11 VAX_11 IBM 370 Honey
'A'+1 =?
如何表示不可显示字符? 回车/退格/TAB?
如何表示定界符?
’“’ 产生歧异
转义符\:将\后面的字符转换为其它含义
第三章数据类型与运算规则
字符形式 功能
使用举例
\n \t
\b \r \f \\ \’ \” \ddd \xhh
换行(ASCII码为10) printf(”\n”);
横向跳格 退格
补码 1 111 1111 1111 1111 反码+1
< 第三章数据类型与运算规则
➢ 实型常量的不同表示方法:
✓ 十进制小数形式:(必须有小数点)
1.0 1. +12.0 -12.0 0.0
✓ 指数形式(e或E前后必须有数字;指数必须为整数)
1e3
1.8e-3 -123e-6
等价于:1000
1.8*10-3 -123*10-6
决定数据所占存储 空间的大小和数据 的范围
➢ C语言有四种类型修饰符:
✓短
short
类型修饰符
✓长 ✓ 有符号 ✓ 无符号
long signed
unsigned
第三章数据类型与运算规则
类型 符号
关键字
所占位数
数的表示范围
(signed)int 有 (signed)short
16
-32768~32767
符号位 1:负数 0:正数
整型数据在计算机中以 补码形式存储
第三章数据类型与运算规则
正数的原码、反码和补码相同
1的补码
0 000 0000 0000 0001
……
32767的补码 0 111 1111 1111 1111
(215-1)
负数 -1
原码 1 000 0000 0000 0001
反码 1 111 1111 1111 1110 原码取反
第三章 数据类型与运算规则
本章要点
➢ 基本数据类型与特点 ➢ 各种数据类型表示范围 ➢ 常量的表示方法 ➢ 变量说明语句 ➢ 运算符与基本运算规则
第三章数据类型与运算规则
第三章 数据类型和运算规则
$1 数据与数据类型 $2 常量与常量定义 $3 变量与变量说明
第三章数据类型与运算规则
§3-1 数据与数据类型
16
-32768~3g
32
-2147483648~2147483647
型
unsigned int
16
0~65535
无 unsigned short
16
0~65535
unsigned long
32
0~4294967295
实 有 float
32
3.4e-38~3.4e38