C语言第二章数据类型及表达式解析

合集下载

第2章C语言的基本数据类型与表达式

第2章C语言的基本数据类型与表达式
程序运行结果为: x+k=40,y+k=10
2019/6/8
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
14
例,完善程序(s1-3.c) 程序功能:下面的程序是求整数a/b 的商和余数,
请用正确的表达式填空。
main() { int a,b,c,d; a=100; b=30; _________ _________ printf(“a=%d, b=%d, c=%d, d=%d\n”,
如:25(short),25l(长整型),25u(无符号),25ul(无符号长)
3、值域:
由机器中数据的存储长度决定。
如Turbo C中,有 short(2字节)≤int(2字节) ≤long(4字节)
关键字
所占位数
取值范围
short
16(2B)
-32768~32767
unsigned short
16(2B)
字宽(字节) 1 1
1 2 2 2 2或4 2或4 2或4 4 4 4 4 8 16
0010 0008 0006 0004 0002 0000
2019/6/8
C语言程序设计教程
3
double float int
第2章 C语言的基本数据类型与表达式
4
二、整型
1、常量:
(1) 十进制形式:与数学上的整数表示相同;
long
unsigned
int
char,short
99.5 + 5
104.5(double)
2019/6/8
C语言程序设计教程第2章 CΒιβλιοθήκη 言的基本数据类型与表达式19
二、关系运算符和关系表达式

C语言之 2-2 数据类型、运算符和表达式

C语言之 2-2 数据类型、运算符和表达式

同样也可以在%和浮点数格式说明符之间一些修饰,用来确 定浮点数据的显示宽度、精度及对齐方式。其一般形式为: %[-][m.n]浮点格式说明符 -:依然表示数据输出时左对齐; m.n:m表示整个数据的输出宽度,n表示小数部分输出的位 数。 【例3.5】 #include "stdio.h" void main() { double pi=3.1415; printf("%f,%6.2f,%.2f,%-6.2f\n",pi,pi,pi,pi); } 程序输出结果为: 3.141500,⊔⊔3.14,3.14,3.14⊔⊔
C语言程序设计
2.3.5 赋值运算
1.简单赋值 简单赋值运算符“=“仅执行赋值操作,表达式的形式为: 操作数1=操作数2 “=“的功能是将右操作数的值赋给由左操作数指定的存储 单元(变量)。左操作数必须是一个可更改内容的左值表达式.赋 值运算符的右操作数类型可以和左操作数不同,执行赋值之前右 操作数被自动转换为左操作数的类型。
例6.y<3?-1.0:1 结果为实型, 即使y>=3,结果也为1.0。
1 a>0 0 a=0 -1 a<0
C语言程序设计
为了便于调试程序,下面讲printf。
C语言程序设计
3.2.2 格式输出函数printf
一般调用形式为: printf(“格式控制字符串”,输出项表列); 其功能是按“格式控制字符串”所指定的格式,在 计算机标准输出设备(通常为显示器)上依次输出由输 出项表列所指定的输出项。 输出项表列用于指定输出内容,它通常由一个或多 个输出项构成,当有多个输出项时,输出项之间应使用 逗号“,”分隔,输出项可以是常量、变量或表达式。 输出项的顺序、个数与类型要与“格式控制字符串”中 的格式说明符的顺序、个数、类型相匹配。 “格式控制字符串”是使用一对双撇号括起来的字 符串,用于指定后面各个输出项的输出格式。它一般包 含两个方面的信息:格式说明(以%开头的若干个字符) 和普通字符。

C语言学习第二章数据类型

C语言学习第二章数据类型
基本整型:表示范围为0~0177777。 ③十六进制数:
基本整型:表示的范围为0X0~0XFFFF。
2.4.2 整型变量
1.整型变量在内存中的存放形式
以二进制补码的形式存放。
正数:最高位为0,其余各位是该数的二进制表示 负数:最高位为1,其余各位是该数绝对值的二进制
再按位取反加1
2. 整型变量的分类
放一个字符。
下面是对c1、c2赋值: c1=‘a’;c2=‘b’; (实际上其内存中存放的是该字符的ASCII码)
字符变量的初始化,如:char c1=‘a’,c2=‘b’;
2.5.3 字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,实际上是将该字 符的ASCII代码以二进制形式放到存储单元中。
无符号型:(只能存放0和正整数) ① 基本整型:类型说明符为unsigned int或unsigned
在内存中占2个字节 取值范围为0~2161,即0~65535。 ② 短整型:类型说明符为unsigned short (int) 所占字节和取值范围均同基本整型。 ③ 长整型:类型说明符为unsigned long (int) 在内存中占4个字节 其取值范围是0~2321 即0~4294967295
实型常量也称为实数或者浮点数。 实型常量不分单、双精度,都按双精度double型处理,其有 效位数为(15~)16位。
实型常量的表示方式有:
(1)十进制小数形式
小数形式由数字0~ 9和小数点组成。
当某浮点数整数部分或小数部分为0时,0可以省略,但小 数点不可省略。
例如:
0.0 , .25 ,5.789 ,0.13 ,5.0 , 300. 267.8230 , 123. 等均为合法的实数。

《C语言程序设计》第二章 数据类型、运算符和表达式

《C语言程序设计》第二章 数据类型、运算符和表达式

用户标识符 作用:标记常数、变量、自定义数据类型、函数及 程序的名字
取名规则:
以字母或下划线‘_’中任一字符打头; 在第一字符之后,可以是任意的字母、下划线或数 字组成的字符序列,这个字符序列可以是空串。
用户标识符
说明:
不要与保留字同名; C语言中大小写字母有不同的含义,即区分大小写。 name和Name在C中是两个不同的标识符; 习惯上除了符号常数,一般都用小写字母表示; 标识符长度不限,但只识别前8个字符。 例: 正确:a, a1, f_1, area, _age 错误:2a, last name, no#, -xy, char
变量的定义 变量表示在C程序中的基本存储单元。变量是指在程 序运行过程中其值可以改变的量。变量必须“先定义 后使用”。
定义一般形式: 类型
例: int age, index; float x, y;
变量标识符表;
double z;
定义一般形式: 类型 定义变量的作用:
变量标识符表;
使一变量属于某一确定的类型,即规定该 变量的取值范围及它能执行的运算操作 ; 编译时能为其分配相应的存储单元,并确 定其存储形式,同时根据其定义检查该变量所 进行的运算合法性 。
短整型(short int )
整型
整型(int) 长整型(long int)
C 中 的 类 型 划 分
基本类型
实型
单精度型(float) 双精度型(double)
构造类型
数组类型 结构类型(struct) 共用体(union) 文件类型(FILE)
指针类型 空类型(void)
不同类型 的数据在计 算机中的存 储格式也不 同,以32位 机为例说明。

C语言第02章 数据类型、运算符与表达式

C语言第02章 数据类型、运算符与表达式

回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。

C程序设计 第2章 数据类型及表达式

C程序设计 第2章 数据类型及表达式

常见的转义字符
字符形式 \n \t \v \b \r \f \\ \’ \“ \ ddd \ xhh 换行 横向跳格(即跳到下一个输出区) 纵向跳格 退格 光标移到当前行开头 走纸换页 反斜杠字符“\” 单引号字符 双引号字符 1到3位八进制字符。如\ 123表示八进制数123, 即十进制数83 1到2位十六进制字符。如\x21,表示十六进制数 21,即十进制数33 功 能
第2章 数据类型及表达式
整型 字符型 基本类型 实型 (浮点型) 枚举类型 数据类型 数组类型 构造类型 结构体类型 共用体类型 指针类型 空类型 单精度型 双精度型
常量
在程序运行过程中其值不能改变的量叫做常量。常量 分为整型常量、实型常量和字符型常量等。 整型常量有23 、-7 、036(八进制) 、0x2d(十六进制) 、 5L(长整型常量)等。 实型常量有5.87 、2e3(指数形式)等。 字符型常量有’a’、’\n’(转义字符) 、”china”(字符串 常量)等。 可以使用标识符代表一个常量,例如:#define PI 3.14 PI就称为符号常量。 C语言规定标识符以字母开头,由字母、数字或下划线 组成。 一般符号常量名用大写字母,变量名用小写字母。
字符型变量
char c=‘a’;/*定义字符型变量c,并初始化*/ 字符型数据按ASCII码存储,占一个字节。 给字符变量赋值时可以赋予字符的ASCII码。例 如:char a=65的结果是a变量中存放字母A 。
例如
main ( ) {char a=’a’,b=’b’,c=’c’,d=65; a=a+1;b=b+2;c=c+3;d=d+4; printf(“%c%c%c%c\n“,a,b,c,d); } 运行结果:bdfE

C语言第2章基本数据类型与表达式

C语言第2章基本数据类型与表达式

2.1.3 关键字
关键字(又称保留字)是一种语言中规定具有特定含义的标识符。 C语言可使用以下32个关键字:
auto
double int struct
break
else long switch
case
enum
char
extern
const
float short
continue default
for signed goto sizeof
例: main() { int x,y,z,w; /*定义x,y,z,w为整型变量*/ unsigned int k; /*定义k为无符号整型变量*/ x=10; y=-20; k=30; z=x+k;w=y+k; /*不同类型的整型变量x、y、k可运算*/ printf(″x+k=%d,y+k=%d\n″,z,w); } 程序运行结果为: x+k=40,y+k=10
3. 字符常量
C语言的字符常量是用单撇号括起来的一个字符。如 ′x′,′+′,′\n′,′\101′都是合法的字符常量。 字符数据在内存中是以ASCII码存储,它的存储形式与整数的存储 形式类似。因此可以通用。例如: #include <stdio.h> main() { char c1,c2; c1=97; c2=98; printf(″%c ,%c\n″c1,c2); printf(″%d, %d\n″c1,c2); } 在程序中我们将整数97和98分别赋给c1和c2,它的作用相当于以 下两个赋值语句: c1=′a′; c2=′b′; 运行时输出结果如下: a,b
4. 字符串常量
• C语言没有专门的字符串类型变量,但有字符串 常量。字符串常量是由一对双撇号括起来的字符 序列。 如:″changsha″, ″central south university″,″+++ \\?ab″都是合法的字符串常量。 • 不要将字符常量与字符串常量混淆。如: ′a′是字符常量, ″a″是字符串常量

C语言第二章数据类型及表达式解析

C语言第二章数据类型及表达式解析
16
2.1.3 字符型
例2.2
1 #include <stdio.h> 2 int main() 3{ 4 int i, j; 5 char c1,c2; 6 c1='a'; //字符数据赋值给字符型 7 c2=98; //整数数据赋值给字符型 8 i='A'; //字符数据赋值给整型 9 j=66; //整数数据赋值给整型 10 printf("i=%d , j=%d , c1=%c , c2=%c\n",i,j,c1,c2); 11 printf("c1-32=%c\n",c1-32); //字符型可以进行减法运算 12 return 0; 13 }
13
2.1.3 字符型 ► C语言字符型分为有符号(signed char)和无符号 (unsigned char)两种,其中signed书写时可以省略。 ► 字符型数据在内存中占用1个字节,采用二进制形式存储。
14
2.1.3 字符型 ► 字符型数据可以存储整型数值,有时也称为字节型。字符 型数据存储整数时的内存形式与整型一样,只不过其数值 范围要小得多。 ► 字符型数据可以存储单字节字符,如ASCII码,此时在内存 中的数据是字符的ASCII码值。例如字符'A'在内存中的存储 形式为
3.41038 3.41038
1.710308 1.710308
同上/ 1.2104932 1.2104932
精度
7 16 19
5
2.1.1 整型 ► C语言整型分为长整型(long int)、基本整型(int)和短 整型(short int) ► long int可以简写为long、short int可以简写为short。 ► int型数据的内存长度与系统平台相关,通常int型为机器的 一个字长,short型不比int型长,long型不比int短。

C语言--ch2--数据类型和表达式

C语言--ch2--数据类型和表达式

2.3 运算符和表达式
3.算术表达式 1)用算术运算符和括号的式子,称为算术 表达式.例如: a*b/c-1.5+'a' 1+3-4*5-a*a+b*b 2)算术表达式的值: 任何表达式都有值 3*4-5/2*2%3 11
2.3 运算符
4, 注意: 1)C语言算术表达式的乘号(*)不能省略.例如: 数学式b2-4ac,相应的C表达式应该写成: b*b-4*a*c 2)C语言表达式中只能出现已经定义的标识符. 例如,数学πr2相应的C表达式应该写成: # define PI 3.14 int r; PI*r*r (或者 3.14*r*r) 3)C语言可以使用多层圆括号,此时左右括号必 须配对,运算时从内层括号开始,由内向外依 次计算表达式的值 .例如: (((3+4)*5)-9)*2-5
2.3 运算符和表达式
5,运算符的优先级与结合性 1)优先级见教科书 2)在表达式求值时,先按运算符的"优 先级别"高低次序执行 ,例如: a-b*c 等价于 a-(b*c), 3)结合性:左结合,即如果在一个运算 对象两侧的运算符的优先级别相同时,先 与左面的运算符结合,例如: a-b+c等价于(a-b)+c
2.2 常量和变量
4, 变量的作用:保存数据. 保存数据. 保存数据 例:求圆柱体的底面积,表面积,体积 5,变量在任意一个时刻都只能保存一个值. 例:int i; i=12;/*变量i的值这时为12*/ i=i+3;/*i=12+3, i的值这时为15*/ i=4;/* i的值这时为4*/
2.2 常量和变量
课堂练习:判断以下常量是否合法? 课堂练习:判断以下常量是否合法?
12e3; e3; 12.3e; 0.45E1.2

C语言程序设计第2章 数据类型、运算符与表达式

C语言程序设计第2章 数据类型、运算符与表达式

整数类型是以二进制数据形式存储的,确 切地说是以二进制补码形式。
9
一、整型

整数的存储方式 一个十进制整数,先转换为二进制形式 如整数15,以二进制形式表示是1111 用一个字节存放
0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 用两字节存放 负数按补码形式存放 请问:-15又是如何存储的呢?
27
四、字符串常量
字符串常量与字符常量的区别:
(5)字符串中可以有转义字符。 (6)单引号和双引号只是字符和字符串的定界符,如果字符 常量本身是单引号,则要用转义字符,如‘\‟‟ 。
'a'是一个字符常量 "a"是一个字符串常量
a
a \0
空字符作为字符串常量的结束
28
五、符号常量
用一个标识符来代表一个常量,称为符号常量。 符号常量在使用前必须先定义,用宏定义的形式, 其一般定义格式为:
31
2.2.2 变量
变量是指在程序运行过程中其值可以变化的量。 C语言要求在使用变量之前必须先进行声明。 给变量指定一个标识符,这个标识符称为变量名; 变量名(标识符)的命名规则: 只能由字母、数字或下划线组成; 第一个字符必须是字母或下划线。

32
1、变量的声明
声明一个变量包括: 指定该变量的数据类型,该类型决定了变量值的 类型、表现形式和占用内存空间,以及对该变量能 执行的运算; 指定变量的存储类型和变量的作用域。
22
二、实型常量
0、1.2

1.2、7.、.36、1e3、1.8e-3、-.1e-3
、3、e3、2.1e3.5、.e3、e
在实型常量中不能有空格。 默认状态下,实型常量被识别为双精度 (double)类型。可以使用后缀F或f表示单精 度(float)类型,后缀L或l表示长双精度 (long double)类型。比如123.56是double类 型,123.56f是float类型,1.2356E2L是long double类型。

C语言 基本数据类型、运算符和表达式剖析

C语言 基本数据类型、运算符和表达式剖析

2018/10/25
第2章 基本数据类型、运算符和表达式
13
《C语言程序设计》
2.2.1 变量
1.变量的定义和赋值 C语言要求程序中使用的每个变量都必须先定义, 然后才能使用。定义变量需要用变量定义语句进 行,其形式为: 类型 变量名[=初值][,变量名[=初值],……];
2018/10/25
第2章 基本数据类型、运算符和表达式
2018/10/25
第2章 基本数据类型、运算符和表达式
18
《C语言程序设计》
2.2.2 常量
3.字符常量 字符型常量是由一对单引号括起来的单个字符构成, 在C语言中,字符常量有以下特点: (1) 字符常量只能用单引号括起来,不能用双引号或其 它括号。 (2) 字符常量只能是单个字符,不能是字符串。 (3) 字符可以是字符集中任意字符。一个字符型常量的 值是该字符集中对应的ASCII编码值。显然'5'和5 是不 同的。
2018/10/25
第2章 基本数据类型、运算符和表达式
17
《C语言程序设计》
2.2.2 常量 2.实型常量 在C语言中,把带小数的数称为实数或浮点数。实型常 量只能用十进制形式表示,不能用八进制和十六进 制形式表示。实型常量有两种表示方法: (1) 小数形式:由数字和小数点组成,如3.1415926、 -0.12、.4、3.等都是实数。 (2) 指数形式:如1.23e5或12.3E4都代表1.23x105。 注意:字母e(或E)之前必须有数字,且e后面指数必须 为整数,如e3、2.1e3.2、e等都不是合法的指数形式。
2018/10/25
第2章 基本数据类型、运算符和表达式
10
《C语言程序设计》
第2章

C语言的基本数据类型和表达式

C语言的基本数据类型和表达式

例1 用转义字符输出字符。 main( ) { printf(“\x4F\x4B\x21\n”); /* 等价于printf(“OK!\n”); */ 例2 写输出结果。 main( ) {printf(“_ab _c\t _de\rf\tg\n”); printf(“h\ti\b\bj _k”);}
第2章 数据类型、运算符与表达式
2.1 C语言的数据类型 C语言提供数据类型分类如下: 1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举 型四种。 2.构造类型 分为数组类型、结构类型和共用类型三种。 3.指针类型 4.空类型 本章将介绍基本类型中的整型、实型和字符型三 种数据。
1 常量
2.2 常量和变量
2.3 整型数据
1 整型常量(即整常数) 表示形式: (1)十进制。如10、36。 (2)八进制(以数字0开头)。如 012。 (3)十六进制(以数字0+字母x(X)开头)如0x36。 分类: (1)基本整型。如 30 (2)无符号整形(在数值后面加“U(u)”, 可不加)。 如20U、32u (3)长整型(在数值后面加“L(l)”)。 如123l、315L等。
2.5 字符型数据
1 .字符型常量 定义:用一对单引号括起来的单个字符,称为字符常量。
如:‘A‟、’a‟、‘1’、‘+’、 ’@‟等。 存放情况:字符型常量在内存占1个字节,存放其对应ASCII 值,所以字符型常量可作为整常量处理,参与算术运算。 如:main( ) { int c=„A‟; c=c+32; printf(”%d,%c”,c,c);
定义: 如 float x,y;
double z=1.0;
实型数据的有效位数问题:
例1 main( ) {float a=111111.111111; printf (“a=%f”,a);} 输出结果:a=111111.123456 例2 main( ) {float a=123456.789e5,b; b=a+20; printf (“a=%f,b=%f”,a,b);} 上机观察运行结果。 只有前7位是准确的

C语言讲解第二章 基本数据类型、运算符及表达式

C语言讲解第二章 基本数据类型、运算符及表达式

2.2.3 符号常量
例: #define PRICE 30 #include<stdio.h> void main ( ) { int num, total; num=10; total=num*PRICE; printf("total=%d",total); }
显示结果: total=300
当开始编译前,系统先将程序中所有的PRICE 这个单词换成30,再进行编译(翻译成二进制)。
2.2.3 符号常量
例:#include<stdio.h> #define PI 3.14 #define R 10.0-7.0*PI void main() { float s; s=PI*R; printf(“s=%f\n”,s); }
显示结果: s=9.420000
2.2.4 字符型常量
它可分为字符常量和字符串常量两种。 (1) 字符常量 * 字符常量的定义 用一对单引号括起来的单个字符,称为字符 常量。 例如,‘A’、‘1’、‘+’等。 * 转义字符 C语言还允许使用一种特殊形式的字符常 量,就是以反斜杠“\ ”开头,引导的一个字 符或一个数字序列的转义字符
2.2 常量
什么是常量?
程序运行过程中不能被改变的量。 如程序中: 20 整型常量
15.8 浮点型常量
'a' 字符常量
2.2.1 整型常量
1、整型常量的基本类型
整型数据有三种形式
十进制整数 八进制整数 十六进制整数
2.2.1 整型常量
(1)十进制整数的表示与数学上的表示相同

合法的十进制常数如: 256,-321,0
不合法的十进制常数有: 023,25D

C语言 数据类型、运算符和表达式解读

C语言 数据类型、运算符和表达式解读

25
2.3.1算术运算
算术 操作数 一元 运算符 操作数
二元
26
算术运算注意
(1)C语言规定了运算符的优先级和结合性。 在表达式求值时,先按运算符的优先级别高低次序执 行,例如先乘除后加减。 (2)C规定了各种运算符的结合方向(结合性) 算术运算符的结合方向为“自左至右”,即先左后右 (3) 整数除整数,得整数 如:1/2 = 0,9/4 = 2 (4) % 模运算,针对整型数据 (5)“*”乘号不能省略 5*a不能5a (6) 双目运算符两侧操作数的类型要相同

cost_price
变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、 principal 空格等 123rate lastname 变量名必须以字母或 _(下划线)开头 zip code 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特 殊意义,不能用作变量名 marks_3 discount% C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同 的变量
说明:设用0、1、2、3、4、5、6分别表示星期日、星期一、星期二 、星期三、星期四、星期五、星期六。因为一个星期有7天,即7天为 一周期,所以n/7等于n天里过了多少个整周,n%7就是n天里除去 整周后的零头(不满一周的天数),(n%7+3)%7就是过n天之后 的星期几。
28
2.3.2关系运算
用关系运算符将两个操作数连接起来的合法的C语言式子,称为关系表达式。 例如,8>5、a==b、c!=d、x>=y。
15
整型
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12
2.1.2 浮点型
例2.1
15 return 0; 16 }
程序运行屏幕
a=111111.1093750000000000 , b=111111.1093750000000000 c=111111.1110067800000000 , d=111111.1110012300100000 e=100000000000000110000.000000
3.41038 3.41038
1.710308 1.710308
同上/ 1.2104932 1.2104932
精度
7 16 19
5
2.1.1 整型 ► C语言整型分为长整型(long int)、基本整型(int)和短 整型(short int) ► long int可以简写为long、short int可以简写为short。 ► int型数据的内存长度与系统平台相关,通常int型为机器的 一个字长,short型不比int型长,long型不比int短。
► 浮点型数据在内存中的存储方式按IEEE 754浮点数标准处理, 不同于整型数据那样直接的二进制表示。
10
2.1.2 浮点型 ► 因为浮点型数据长度和精度是有限的,所以浮点数存在舍 入误差和计算误差。虽然浮点数精度越高计算结果越精确, 但其处理时间也长。
一个较大的浮点数与一个很小的浮点数做加法时,由于精度限制 使得很小的浮点数被忽略了,从而使得这样的加法无意义。 两个浮点数做比较,由于有误差很难做到绝对相等,只能通过它 们差的绝对值小于一个很小的数来判断是否近似相等。
6
2.1.1 整型 整型数据的存储方式为二进制补码形式,例如短整型数123在内 存中的存储形式为 短整型数-123在内存中的存储形式为
7
2.1.1 整型 整型还分有符号(signed)和无符号(unsigned)类型,其中 signed书写时可以省略。
图2.1 有符号和无符号短整型的数值范围
一般地,由于计算机处理整型速度快,因此若运算不涉及小数, 就尽量选用整型。而那些没有负值的整数,如学号、逻辑值、字 节值、地址、索引值等选用unsigned类型。
9
2.1.2 浮点型
► C语言浮点型又称实型,分为单精度(float)、双精度 (double)和长双精度(long double)3种。
► 在VC中规定float型在内存中占用4个字节,提供7位有效数 字;double型和long double型在内存中占用8个字节,提 供16位有效数字。在GCC中long double型在内存中占用12 个字节,提供19位有效数字。
3
2.1 数据类型 C语言内置数据类型
4
2.1 数据类型
表2-1 基本类型数据的内存长度和数值范围
类型
类型标识符
内存长度
整型
[signed] int
4
无符号整型
unsigned [int]
4
短整型
[signed] short [int] 2
无符号短整型 unsigned short [int] 2
第2章 数据类型与表达式
1
第2章 数据类型与表达式
► 2.1 数据类型 ► 2.2 常量 ► 2.3 变量 ► 2.4 运算符与表达式 ► 2.5 类型转换
2
2.1 数据类型
利用计算机求解问题,首先需要将实际问题的数据引入到计算机 中,即在程序中描述这些数据。 由于计算机存储和处理上的特点,数据是以某种特定的形式存在 的(如整数、浮点数、字符信息等),不同的数据之间还存在某 些联系。 程序语言通过数据类型描述不同的数据形式,数据类型不同,求 解问题的算法也会不同。类型是所有程序的基础,它告诉我们数 据代表什么意思以及对数据可以执行哪些操作。
13
2.1.3 字符型 ► C语言字符型分为有符号(signed char)和无符号 (unsigned char)两种,其中signed书写时可以省略。 ► 字符型数据在内存中占用1个字节,采用二进制形式存储。
8
2.1.1 整型 ► 不同的数据类型规定了不同的机器数长度,决定了对应数 据的数值范围,当一个整数超出此范围时计算机会将其转 换为在数值范围内所允许的一个数,称为整型数据的溢出 处理。 ► 一般地,超过最大值的有符号整型数值会向上溢出变成负 数,超过最小值的数据会向下溢出变成正数。
图2.2 short型的溢出
长整型
[signed] long [int]
4
无符号长整型 unsigned long [int] 4
字符型
[signed] char
1
无符号字符型 unsigned char
1Leabharlann 单精度型float
4
双精度型
double
8
长双精度型
long double
同上/12
数值范围 -2147483648~+2147483647 0~4294967295 -32768~+32767 0~65535 -2147483648~+2147483647 0~4294967295 -128~+127 0~255
11
2.1.2 浮点型
例2.1
1 #include <stdio.h> 2 int main() 3{ 4 float a=0.00000678f, b=0.00000123f; 5 double c=0.00000678 , d=0.00000123; 6 double e=100000000000000000000.0; 7 a = a + 111111.111f; //精度范围外的大浮点数与小浮点数相加 8 b = b + 111111.111f; //精度范围外的大浮点数与小浮点数相加 9 c = c + 111111.111; //精度范围内的大浮点数与小浮点数相加 10 d = d + 111111.111; //精度范围内的大浮点数与小浮点数相加 11 e = e + 111111.111f; //精度范围外的大浮点数与小浮点数相加 12 printf("a=%.16f , b=%.16f\n",a,b); //输出单精度浮点型a,b 13 printf("c=%.16lf , d=%.16lf\n",c,d); //输出双精度浮点型c,d 14 printf("e=%lf\n",e); //输出双精度浮点型e
相关文档
最新文档