C语言程序设计 第三章 数据类型 运算符号 表达式
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,
c语言程序设计第三章运算符与表达式
第三章运算符和表达式3.1 运算符和表达式概述使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。
用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。
另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。
根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类:(1) 单目(一元)运算符:只连接一个操作数的运算符。
(2) 双目(二元)运算符:带有两个操作数的运算符。
(3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。
C语言中的表达式可以分为三类:(1) 单个常量或者单个变量是最简单的表达式。
(2) 带有运算符的表达式。
(3) 函数调用。
任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。
所以运算对象、运算符和运算结果是运算的三大要素。
3.2 算术运算符和算术表达式一、基本算术运算符和简单算术表达式1. 基本算术运算符C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。
2. 简单算术表达式当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。
简单算术表达式的基本形式:data1 op data2。
data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。
假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。
3. 基本算术运算符使用说明(1) +、-、*,/既可以连接整型数据,也可以连接实型数据。
当参与这4个运算符的运算对象都是整型数据时,得到整型数据运算结果;否则表示浮点运算。
例如,int a=15,b=2;则a*b等于30,而a/b等于7;a*2.0等于30.0,而a/2.0等于7.5。
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 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:
C语言程序设计--第3章基本数据类型和表达式
2.实型变量
实型变量分为单精度(float型)和双精度(double型)。 如: float x,y; double z; / *定义x , y为单精度实数* / / *定义z为双精度实数* /
一个float型数据在内存中占4个字节(32位),提供7位有效数字 一个double型数据占8个字节(64位),双精度提供15 ~ 16位有 效数字 值得注意的是,实型常量是double型,当把一个实型常量赋给一 个float型变量时,系统会截取相应的有效位数。
§3.1 基本语法单位
任何一种语言都会根据自身的特点规定 它自己特定的一套基本符号。例如,英语的 基本符号是26个英文字母和一些标点符号。 C语言作为一种程序设计语言,也有它的基 本符号,程序就是由这些基本符号组成的。
§3.1.1 基本符号
程序中要对各种变量和各种函数起名,这些变量名、 函数名都是由语言的基本符号组成的。C的基本符号包 括: (1)数字10个(0~9); (2)英文字母大小写各26个(A~Z, a~z); (3)特殊符号,主要用来表示运算符,它通常是 由1~2个特殊符号组成。包括:
digits是一位或多位十进制数字(从0~9)。 1.575e9表示1.575×109
注意:
◆所有的实型常量均视为双精度类型。实型常量
的整数部分为0时可以省略,如下形式是允许的: .57,.0075e2,-.125,-.175E-2; 须为整数: 如e3,2.1e3.5,. e3,e等都是不合法的指数 形式。
不同的,而且取值范围与机器硬件有关,在 使用时请参阅有关手册。
◆需要指出的是:C语言没有提供布尔(逻辑)
类型,在逻辑运算中,它是以非零表示真 (TRUE),以数值0表示假(FALSE)。
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
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,而是代表换行。
第三章 数据类型运算符与表达式
三、变量
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章数据类型、运算符、表达式
例如
➢字符常量‘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.赋值运算符和赋值表达式
C语言数据类型、运算符与表达式
大于等于运算符(>=):比较两个数 的大小,判断第一个数是否大于或等 于第二个数
小于等于运算符(<=):比较两个数 的大小,判断第一个数是否小于或等 于第二个数
等于运算符(==):判断两个值是否 相等
逻辑运算符
总结词
用于进行逻辑运算的符号
与运算符(&&)
判断两个条件是否同时为真, 返回真或假
或运算符(
逻辑表达式
总结词
逻辑表达式用于判断逻辑条件。
详细描述
逻辑表达式使用逻辑运算符(如“&&”、“||”、“!”)来组合或比较关系表达式,例如“a > b && c < d”表示a大于b且c小于d的逻辑条件。
位表达式
总结词
位表达式用于对二进制位进行操作。
详细描述
位表达式使用位运算符(如“&”、 “|”、“^”、“~”、“<<”、 “>>”)来对整数类型的变量进行位 运算,例如“a << 2”表示将a的二 进制表示向左移动两位。
THANKS
感谢观看
|):判断两个条件中至少有一个 为真,返回真或假
非运算符(!)
对一个条件取反,返回真或假
位运算符
):对两个数的二进制位 进行或操作
位或运算符(
对两个数的二进制位进行 与操作
位与运算符(&)
对二进制位进行操作的符 号
总结词
位运算符
位异或运算符(^)
对两个数的二进制位进行异或操作
右移运算符(>>)
将一个数的二进制位右移指定的位数
详细描述
算术表达式可以包含加法、减法、乘法、除法等基本数学运算,例如“a + b * c - d / e”。
第三章 数据类型及其运算
第三章 数据类型及其运算知识点提示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 为前导的十六进制整数。
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类型处理。
C语言设计3
long e,f;
(指定变量e,f为长整型)
对变量的定义,一般是放在一个函数的开头部分的声明部分(也可以放在
函数中某一段程序中,但作用域只限它所在的分程序)
例1 整型变量的定义和使用
main( ) {int a,b,c,d;
unsigned u;
/*指定a,b,c,d为整型变量 */ /*指定u为无符号整型变量*/
Chap.3 数据类型、运算符与表达式
3. 1 C的数据类型 一个程序应包括两个方面的内容:
(1)数据的描述。 (2)操作步骤,即动作的描述。
数据是操作的对象,操作的结果会改变数据的状况。订个比方,厨师 做菜肴,面对同一些原料可以加工出不同风味的菜肴。作为程序设计人 员,必须认真考虑和设计数据结构和操作步骤(即算法)。因此,著名计算 机科学家沃思提出一个公式:
限的。在有效位以外的数字将被舍去,由此可能产生一些误差。如
a=12345678900,b=20(a, b为实型), 那么C程序输出的a和a+20结果相同, 且均为12345678848.000000,可以看到,前8位是准确的,后几位是不准确 的,把20加在后几位上,是毫无意义的。应当避免将一个很大的数和一个很 小的数直接相加减,否则会“丢失”小的数。
Chap.3 数据类型、运算符与表达式
一个整数(以13为例)在存储单元中的存储情况下图所示。
Chap.3 数据类型、运算符与表达式
( 3)整型变量的定义
C规定在程序中所有用到的变量都必须在程序中定义。即“强制类型定义”。
int a,b;
(指定变量a,b为整型)
unsigned short c,d; (指定变量c,d为无符号短整型)
(4)常量无unsigned型。但一个非负值的整数可以赋值给unsigned型整 变量,只要它的范围不超过变量的取值范围即可。例如,将50000赋给一个 usigned int型变量是可以的,而将70000赋给它是不行的(溢出)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.4 浮点型数据
一、浮点型常量 浮点型常量又称浮点数, 浮点型常量又称浮点数,就是通常带小数 点的实数 它只使用十进制数, 实数。 点的实数。它只使用十进制数,其书写方法有 两种: 两种: ⑴十进制小数形式 由整数、小数点和小数三部分组成。 由整数、小数点和小数三部分组成。 规范化的指 例如: 例如:12.345, -1.2345, 47.0 数形式 ⑵指数形式 由尾数、字母e 由尾数、字母e或E和指数三部分组成 例如:12.345e例如:12.345e-2, -1.2345E3, 0.1234E4
2.浮点型数据的舍入误差 2.浮点型数据的舍入误差 由于浮点型变量的有效位数有限 有效位数有限, 由于浮点型变量的有效位数有限,在有效 位数以外的数字被舍去,可能会产生误差。 位数以外的数字被舍去,可能会产生误差。 实型数据的舍入误差。 [例]实型数据的舍入误差。
void main() { float a,b; a=123456.789e5; b=a+20; printf(“%f %f”,b); printf( %f ,b); } 运行结果: 运行结果:12345678848.000000 (12345678920)
数据类型
构造类型 指针类型 空类型
3.2 常量与变量
一、常量和符号常量 1.常量的定义 1.常量的定义 常量是程序运行过程中其值不变的数据。 值不变的数据 常量是程序运行过程中其值不变的数据。 2.常量的类型 2.常量的类型
⑴整型常量: 21, 0, -12 整型常量: ⑵实型常量: 1.2, -3.4 实型常量: 字符常量: a , Z ⑶字符常量: ‘a’, ’Z’ 字符串常量: Shen Zhen” ⑷字符串常量: “Shen Zhen
3.符号常量 3.符号常量 若程序多处使用某个常量, 若程序多处使替代该常量。 符号常量。此时可用符号常量来替代该常量。
常量定 义 [例]符号常量的使用
两点注意: 两点注意:
1、符号常量的值不 能被改变, #define PRICE 30 能被改变,也不能被再 次赋值。 次赋值。 void main() 2、符号常量名一般 用大写字母, 用大写字母,以便和变 { 量区分开。 量区分开。
%d
三、字符串常量 字符串常量是一对双引号 双引号括起来的字符序 字符串常量是一对双引号括起来的字符序 ab”、 China”、 中国” 列,如:“ab 、“China 、“中国”。 规定: C规定:在每一个字符串的结尾加一个字 在 , 符串结束标志“ C中, 没有专门的字符 符串结束标志“\0”,以便系统据此判断字符 串型变量, 串型变量,而是采用字符型 串是否结束。 串是否结束。因此每个字符串在内存中占用的 数组来实现。 数组来实现。 字节数=字符串长度+1 +1。 字节数=字符串长度+1。
3.5 字符型数据
一、字符常量 字符常量是用两个单引号括起来的单个字 符,如 ‘a’、’A’、’1’、’%’等。 、 、 、 等 特殊形式的字符常量以一个“ 开头的字 特殊形式的字符常量以一个“\”开头的字 符序列,也叫做转义字符 (P48表 转义字符。 符序列,也叫做转义字符。(P48表3-3) [例]转义字符的使用 void main() printf(“□ab□ de\ { printf( □ab□c\t□de\rf\tg\n”); ); printf(“h ti\ bj□ ); printf( h\ti\b\bj□k”); }
3.3 整型数据
一、整型常量 整型常量是用来表示数学中整数, 整型常量是用来表示数学中整数,包括正 整数、 和负整数。 整数、0和负整数。 整型常量有三种表示方式: 整型常量有三种表示方式: 十进制整数: ⑴十进制整数: 21, 0, -111 八进制整数: ⑵八进制整数: 021, 00, -0111 ⑶十六进制整数:0x21, 0x0, -0x111 十六进制整数: 整型常量: 21,234u 011, 整型常量:如,21,234u,011,0x111 长整型常量: 0111L,0x15L 长整型常量:如,0L,-0111L,0x15L
int num,total; 使用常量的好处: 使用常量的好处: num=10; 含义清楚。 1、含义清楚。 total=num*PRICE PRICE; total=num*PRICE; 2、在需要改变常量 时能做到“一改全改” 时能做到“一改全改” printf(“total=%d total=%d”,total); printf( total=%d ,total); 。
2.整型变量的定义 2.整型变量的定义 强制类型定义, 强制类型定义,即在程序中所有用到的变 量必须在程序中先定义。 量必须在程序中先定义。 [例] void main() { int a,b,c,d; /*无符号整型 无符号整型* unsigned u; /*无符号整型*/ a=12;b=a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d a+u=%d,b+u=%d\ ,c,d); printf( a+u=%d,b+u=%d\n”,c,d); } 运行结果:a+u=22,b+u=运行结果:a+u=22,b+u=-14
3.整型数据的溢出 3.整型数据的溢出 不同种类的整型数据可以进行运算。 *不同种类的整型数据可以进行运算。 *运算超出取值范围时,系统不报告错误, 运算超出取值范围时,系统不报告错误, 而是采用类似钟表一样的循环计数。 而是采用类似钟表一样的循环计数。
例如: a=32767, 例如:int a=32767,b; b=a+1; 结果为-32768,而不是+32768. 结果为-32768,而不是+32768.
[例]向字符变量赋以整数: 向字符变量赋以整数: c1=97 void main() 等效于 { char c1,c2; c1=‘a c1= a’ c1=97;c2=98; printf(“%c %c”,c1,c2); printf( %c %c ,c1,c2); } %c 效果不同于 运行结果: 运行结果:a b 字符变量以字符或整数两种形式输出: 字符变量以字符或整数两种形式输出: printf(“%c %d”,c1,c1,c2,c2); printf( %c %d %c %d ,c1,c1,c2,c2); 运行结果: 运行结果:a 97 b 98
a 中 b \0 国 \0 (占3个字节) 个字节) 个字节) (占5个字节)
[例]字符串和字符常量的使用
void main() printf(“字符串的输出 ); 字符串的输出: { printf( 字符串的输出:”); Computer”, 计算机 计算机” printf(“%s,%s %s,%s\ , Computer printf( %s,%s\n”,“Computer ,“计算机”); printf(“字符常量和字符串的输出 ); 字符常量和字符串的输出: printf( 字符常量和字符串的输出:”); printf(“%c %s\ , A , A ); %c, printf( %c,%s\n”,’A’,”A”); }
第三章 数据类型、运算符 与表达式
制作人:张丽涓
3.1 C的数据类型
数据结构是数据的组织形式,C语言的数 数据结构是数据的组织形式,C语言的数 ,C 据结构是以数据类型形式出现的。 据结构是以数据类型形式出现的。
基本类型 整型 实型(浮点型) 字符型 枚举类型 数组类型 结构体类型 共用体类型 单精度型 双精度型
二、浮点型变量 1.浮点型变量的分类 1.浮点型变量的分类 浮点型变量可分为单精度型(float) 浮点型变量可分为单精度型(float)和双精 度型(double)两种, 度型(double)两种,每个浮点型变量都应在使 用前加以定义。 用前加以定义。 float x,y double z
类型 float double 字节数 4 8 有效数字 6~ 7 15~ 15~16 数值范围 10-37~1038 10-307~10308
注:打印和显示的输出不同! 打印和显示的输出不同!
二、字符变量 字符变量用来存放字符常量。 字符变量用来存放字符常量。一个字符变 量在内存中占一个字节,只能存放一个字符。 量在内存中占一个字节,只能存放一个字符。 例如: 例如: char c1,c2; c1 97 c1=‘a’; c1=‘a’; c2 98 c2=‘b ; c2= b’; 字符存放在字符变量中,实际上是将该字 字符存放在字符变量中, 符的ASCII代码放到存储单元中。因此, ASCII代码放到存储单元中 符的ASCII代码放到存储单元中。因此,字符型 数据和整型数据之间可以通用。 数据和整型数据之间可以通用。
} 运行结果: 运行结果:total=300
二、变量和标识符 1.什么是变量 1.什么是变量 变量是指在程序运行过程中其值可以发生 变化的量。 变化的量。 每个变量有一个名字(或叫做标识符), 每个变量有一个名字(或叫做标识符), 并在内存中占据一定的存储单元 占据一定的存储单元。 并在内存中占据一定的存储单元。
*为避免溢出,应掌握较小数据类型向较大 为避免溢出, 数据类型赋值的原则。 数据类型赋值的原则。 如,int a=32767; 注:long的格式输出符为 long的格式输出符为 long b; %ld b=a+1L; Printf(“%d,%ld %d,%ld”,a,b); Printf( %d,%ld ,a,b);
取值范围: 取值范围: 二、整型变量 32768~ -32768~+32767 1.整型变量的分类 1.整型变量的分类 取值范围达±21亿 取值范围达±21亿 基本型: ⑴基本型:int 短整型: ⑵短整型:short int/short 取值范围: 取值范围: 0~65535 长整型: ⑶长整型:long int/long 无符号型: ⑷无符号型: unsigned int unsigned short unsigned long 要求:long不短于 不短于int; short不长于 不长于int C要求:long不短于int; short不长于int 通常的做法:long定为32位 定为32 通常的做法:long定为32位;short 定为16 16位 int两者都可以 两者都可以。 定为16位;int两者都可以。