C语言 第三章 数据类型、运算符与表达式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语言课件第三章
三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加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 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:
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,而是代表换行。
C语言第3章数据类型
序 设 计
C
6
§3.1 C语言的基本元素和数据类型
字符型 char 程序=算法+数据结构 基本类型 整型 int 单精度 float 实型(浮点型) 算法处理的对象是数据 双精度 double 数据结构是数据的组织形式 数组型 array 数据类型是指数据的内在表现形式 数据类型 结构体型 (含位段)struct (代码,存储,运算)。 构造类型 共用体型 union 枚举型 enum 自定义型 typedef 指针类型 (pointer) 空类型 void
内容提要:
C语言的基本元素和数据类型 常量与变量
各种数据类型的常量和变量
变量赋初值 各种类型的数据间的混合运算 几种基本运算符及其表达式
3
程 序 设 计
C
§3.1 C语言的基本元素和数据类型
一、符号集(字符集) C语言经常使用的基本符号共有以下五种: (1)大写字母:A~Z (2)小写字母:a~z (3)阿拉伯数字:0~9 (4)下划线:_ (5)标点符号和运算符
程 序 设 计
C
19
§3.4 实型数据
三、实型数据的舍入误差
虽然实型数据的表示形式有两种但在内存中均是以指 数形式存放 数 阶 若数据超过有效位,则被 小数 指数 符 符 舍去,故可能产生误差。 例3-4 #include <stdio.h> Void main( ) { float a, b; a=123456.789e5; b=a+20; printf(“a=%f, b=%f\n”, a,b); } a=12345678848.000000, b=12345678848.000000
C语言程序设计
C Programming Language
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 .... *它们的含义后面将会络续提到。 * 用户定义的标识符,不能和关键字同名。
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.赋值运算符和赋值表达式
C语言数据类型、运算符与表达式
大于等于运算符(>=):比较两个数 的大小,判断第一个数是否大于或等 于第二个数
小于等于运算符(<=):比较两个数 的大小,判断第一个数是否小于或等 于第二个数
等于运算符(==):判断两个值是否 相等
逻辑运算符
总结词
用于进行逻辑运算的符号
与运算符(&&)
判断两个条件是否同时为真, 返回真或假
或运算符(
逻辑表达式
总结词
逻辑表达式用于判断逻辑条件。
详细描述
逻辑表达式使用逻辑运算符(如“&&”、“||”、“!”)来组合或比较关系表达式,例如“a > b && c < d”表示a大于b且c小于d的逻辑条件。
位表达式
总结词
位表达式用于对二进制位进行操作。
详细描述
位表达式使用位运算符(如“&”、 “|”、“^”、“~”、“<<”、 “>>”)来对整数类型的变量进行位 运算,例如“a << 2”表示将a的二 进制表示向左移动两位。
THANKS
感谢观看
|):判断两个条件中至少有一个 为真,返回真或假
非运算符(!)
对一个条件取反,返回真或假
位运算符
):对两个数的二进制位 进行或操作
位或运算符(
对两个数的二进制位进行 与操作
位与运算符(&)
对二进制位进行操作的符 号
总结词
位运算符
位异或运算符(^)
对两个数的二进制位进行异或操作
右移运算符(>>)
将一个数的二进制位右移指定的位数
详细描述
算术表达式可以包含加法、减法、乘法、除法等基本数学运算,例如“a + b * c - d / e”。
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语言第03章
<尾数>E〔e〕<整型指数>。例如3.0E+5等。
日常表示法 3.14159*100 0.314159*101 0.0314159*102 31.4159*10-1
C语言表示法 3.14159e0 0.314159e+1 0.0314159e+2 31.4159e-1
注意: (1)C语言对英文字母的大小敏感,即同一字母的大 小写,被认为是两个不同的字符。
习惯上,变量名和函数名中的英文字母用小写,常量用 大写字母增加可读性。
练习题: 1.下面为合法的标识符有: _12s 12s s_12 s@12 define 2.经过下面的操作,sum的值为_____ sum=7, SUM=10 , SUM=7+12, Sum=SUM+23
(2)标识符命名的良好习惯──见名知意: 所谓“见名知意〞是指,通过变量名就知道变量值的含 义。例如,name/xm〔姓名〕、sex/xb〔性别〕、age/nl 〔年龄〕。
4.变量的定义与初始化 在C语言中,要求对所有用到的变量,必须先定义、后使 用;且称在定义变量的同时进展赋初值的操作为变量初始化。 〔1〕变量定义的一般格式
随意值。 0 1 1 0 0 0 0 1 1 0 0 0 00 0 0 i=10; 将10转换为二进制的补码形式存放
0 0 0 0 0 0 0 0 0 0 0 0 1 0 10
思考一下 i=-10,计算机内是如何存储的;
2. 分类:根据占用内存字节数的不同,整型变量又 分为4类:
〔1〕根本整型〔类型关键字为int〕。2字节 〔2〕短整型〔类型关键字为short [int]〕。2字节 〔3〕长整型〔类型关键字为long [int]〕。4字节 〔4〕无符号整型。(最高位不是符号位,而是数值)
C语言数据类型、运算符与表达式
整型数 1 1 1 1 1 1 1 1 无符号整型数 1 1 1 1 1 1 1 1
表示-1的补码 1 1 1 1 1 1 1 1 表示 的补码 1 1 1 1 1 1 1 1 表示数值 表示数值65535
6
整型数据
整型变量的定义 对变量的定义,一般是放在一个函数的开头部分的声明部分。 对变量的定义,一般是放在一个函数的开头部分的声明部分。 main( ) { int a, b, c, d; /* 定义整型变量 */ unsigned u; a = 12; b = -24; u = 10; c = a + u; d = b + u; printf( “a + u = %d \t b + u = %d \n”, c, d ); } 整型数据的溢出 如果一个整型变量存放的值,超出它所允许的范围,将会产生溢出, 如果一个整型变量存放的值,超出它所允许的范围,将会产生溢出, 例如一个into型变量,如果其值为 型变量, 就会产生溢出, 例如一个 型变量 如果其值为32767,再加 就会产生溢出, ,再加1就会产生溢出 变成-32768。但运行时并不报错。 变成 。但运行时并不报错。
• 字符数据的存放 以字符的ASCII码存放在存储单元中
97
C1
98
C2
01100001
C1
01100010
C2
13
字符型数据
• 例子 大小写字母的转换 main( ) {char c1,c2; c1=‘a’;c2=‘b’; c1=c1-32;c2=c2-32; printf(“%c %c”,c1,c2);} main() {into i; char c; i=‘a’;c=97; printf(“%c,%d\n”,c,c); printf(“%c,%d\n”,i,i);} 注意: 注意:1、字符型数据和整形数据是通用的。但字符数据只能 存放0~255范围内的整数。 2、字符数据与整数可以直接进行算术运算。 3、字符数据与整型数据可以相互赋值 4、Turbo C将字符数据处理成带符号的整数,如果不想 按有符号处理,可将字符变量定义为unsigned char类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j
-10
11111111 11110110
2012年 10日星期二 2012年4月10日星期二
整型数据
三、整型变量的种类
10000000 00000000 01111111 11111111 基本类型: 基本类型:int [signed] int 的最大值 [signed] int 的最小值 根据数值的范围分为: , 根据数值的范围分为:int,short,long , 32767 (215-1) -32768(-215 ) 根据有无符号(singed/unsigned)及范围可分: 及范围可分: 根据有无符号 及范围可分 00000000 00000000 11111111 11111111 类 型 比特数 取值范围 [signed] int 的最小值 16 -215 ~ 的最大值 (215-1) unsigned [int]的最大值 unsigned [int]的最小值 unsigned 0 [int] 16 0 (216 16-1) 65535 ~ (2-1) [signed] short [int] 16 -215 ~ (215-1) unsigned short [int] 16 0 ~ (216-1) [signed] long [int] 32 -231 ~ (231-1) unsinged long [int] 32 0 ~ (232-1)
2012年 10日星期二 2012年4月10日星期二
整型数据
二、整型变量在内存中的存储 整型变量在内存中是以二进制补码的形式存放的 整型变量在内存中是以二进制补码 补码的形式存放的
int i=10;
i
10
00000000 00001010
取反
11111111 11110101
加1
int j=-10;
2012年 10日星期二 2012年g c:\ex3-2.c 四、整型变量的定义 Error .. 5: Expression syntax in function main Error .. 6: Undefined symbol c 变量定义放在函数开头的声明部分或者函数中某一分 函数开头的声明部分或者 in function main 变量定义放在函数开头的声明部分或者函数中某一分 Error .. 7: Undefined symbol d in function main … 程序开头的声明部分。 程序开头的声明部分。
2012年 10日星期二 2012年4月10日星期二
整型数据
一、整型常量的表示 十进制 如:123,-123,0 , ,
开头) 八进制 (以 0 开头) 表示十进制数83 如:0123 表示十进制数 十六进制( 开头) 十六进制(以 0x 开头) 表示十进制数291 如:0x123表示十进制数 表示十进制数
2012年 10日星期二 2012年4月10日星期二
常量和变量
二、关键字 C语言中的一共有 个关键字: 语言中的一共有32个关键字 语言中的一共有 个关键字:
关键字,也叫做保留字,是指在 语言中具有特定的含 关键字,也叫做保留字,是指在C语言中具有特定的含 保留字 义的字符,它们由系统定义,不能做为他用。 义的字符,它们由系统定义,不能做为他用。
短整型 short 整型 int 长整型 long 单精度型 float 双精度型 double
构造类型 指针类型 空类型 void
定义类型 typedef
2012年 10日星期二 2012年4月10日星期二
常量和变量
一、基本字符集 字符,是组成语言的最基本元素,允许出现在 语言源 字符,是组成语言的最基本元素,允许出现在C语言源 程序的所有字符的集合,称为字符集。 程序的所有字符的集合,称为字符集。 字母:a~z,A~Z 字母: , 数字: 数字:0~9 特殊字符:控制字符、分隔符、 特殊字符:控制字符、分隔符、运算符
第三章 数据类型、 数据类型、运算符与表达式
2012年 10日星期二 2012年4月10日星期二
数据类型、 第三章 数据类型、运算符和表达式
主要内容
C语言的常量与变量 语言的常量与变量 C语言的基本数据类型 语言的基本数据类型 各数据类型间的混合运算 运算符和表达式
C语言的数据类型 语言的数据类型
2012年 10日星期二 2012年4月10日星期二
常量和变量
标识符的注意事项
C语言区分大小写,大小写不同的标识符是不同的 语言区分大小写, 语言区分大小写 例如: 例如:Student和student是两个不同的标识符 和 是两个不同的标识符 标识符的长度有限制,要注意开发环境的限定 标识符的长度有限制, 长度有限制 Turbo C 允许的标识符的最大长度是 允许的标识符的最大长度是32 标识符的命名用有意义的单词组合 标识符的命名用有意义的单词组合 表示学号, 如:Stu_Num表示学号, 表示学号 不要一味地用a, 不要一味地用 b, c等简单标识符名 等简单标识符名
我们上节课讲到: 我们上节课讲到: 著名的计算机科学家N. 提出: 著名的计算机科学家 Wirth提出: 提出
2012年 10日星期二 2012年4月10日星期二
数据结构(描述数据) 算法(描述操作) 程序 = 数据结构(描述数据) + 算法(描述操作) 一个良好的程序,应当综合考虑算法和数据结构 一个良好的程序, 算法处理的对象是数据, 算法处理的对象是数据,而数据是以某种特定的形式 存在的 数据结构是指数据的组织形式
按数据类型
按字面形式
2012年 10日星期二 2012年4月10日星期二
常量和变量
使用符号常量的优点: 使用符号常量的优点:
/* Constant example*/ #define PRICE 25 30 用指定的字符串PRICE来代替“25” 来代替“ ” 用指定的字符串 来代替 含义清晰(定义时要注意采用合适的常量名) 含义清晰(定义时要注意采用合适的常量名) main() 一改全改 在预编译处理时 { 会将程序中所有“ 会将程序中所有“PRICE”用“25”代替 用 ” int num, total;
内存
XXXXXXXX 1 0 sum XXXXXXXX XXXXXXXX
2012年 10日星期二 2012年4月10日星期二
常量和变量
四、变量
类型说明符 变量列表 int 后使用( C语言要求对所有变量:先定义,number 强制定义) 语言要求对所有变量:先定义,后使用(强制定义) 语言要求对所有变量
有效范围是从定义处到源文件结束
num = 10; 宏定义不是C语句 语句, 宏定义不是 语句,不需要分号 total = num * PRICE PRICE; printf(“price=%d, total=%d”, PRICE total); PRICE, } 运行结果:price=25, total=250 运行结果
auto enum if short switch volatile break extern int signed typedef while case do float long sizeof char double for register static const else goto return struct void
保证程序中的变量名使用正确 编译时分配相应的存储单元 如:程序在声明部分声明变量student: 程序在声明部分声明变量 : 编译时可以检查该变量所进行的运算是否合法 int student; 在程序的声明部分做了如下定义: 如:在程序的声明部分做了如下定义: 在执行部分错写成studant: 在执行部分错写成 : int a; float b; studant = 30; 在程序的执行部分有下面运算: 在程序的执行部分有下面运算: 在编译的时候会检查出studant未定义,不做为变量名 未定义, 在编译的时候会检查出 编译时会给出相关的出错信息 未定义 a%b
2012年 10日星期二 2012年4月10日星期二
常量和变量
使用符号常量的优点: 使用符号常量的优点:
/* Constant example*/ #define PRICE 25 宏定义(参见第十一章) 宏定义(参见第十一章) 含义清晰(定义时要注意采用合适的常量名) 含义清晰(定义时要注意采用合适的常量名) main() 常量名一般用大写字母 一改全改 { int num, total; #define命令出现在函数外 命令出现在函数外
2012年 10日星期二 2012年4月10日星期二
常量和变量
四、变量 变量:在程序的运行过程中, 变量:在程序的运行过程中,其值可以被改变的量 变量必须用有效的标识符作为名字 变量名实际上是存放变量值的存储单元地址的抽象 变量名实际上是存放变量值的存储单元地址的抽象 实际上是存放变量值
int sum; sum=0; sum=sum+1;
2012年 10日星期二 2012年4月10日星期二
常量和变量
三、常量
/* Constant example*/ #define PRICE 30 符号常量定义 常量:在程序的运行过程中, 常量:在程序的运行过程中,其值不能被改变 main() { 常量的分类: 常量的分类: int num, total; 0、-2、123 符号常量使用 num = 10; 0.2、4.8、1.3e20 total = num * PRICE PRICE; 'A' 、'g'、'+'、'?' printf("total=%d", total) 直接常量(字面常量) 直接常量(字面常量) } 符号常量 (用标识符表示的常量) 用标识符表示的常量) 运行结果:total=300 运行结果 整型常量 实型常量 字符常量
替换时是做简单地置换, 替换时是做简单地置换,不作正确性检查