第3章基本数据类型运算符和表达式.ppt_第1页
第3章基本数据类型运算符和表达式.ppt_第2页
第3章基本数据类型运算符和表达式.ppt_第3页
第3章基本数据类型运算符和表达式.ppt_第4页
第3章基本数据类型运算符和表达式.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章基本数据类型、运算符和表达式,3.1 C语言的数据类型 3.2 常量 3.3 变量 3.4 运算符 3.5 表达式 3.6 数据类型转换规则,第3章 基本数据类型、运算符和表达式,2,3.1 C语言的数据类型,数据类型指数据的内在表现形式。 数据在加工计算中的特征就是数据的类型。,第3章 基本数据类型、运算符和表达式,3,3.2常量,常量:常数,字面常量。程序运行过程中值不在变的数据 类型: 整型常量 实型常量 字符常量 字符串常量 常量的数据类型有书写方法自动默认。,第3章 基本数据类型、运算符和表达式,4,3.2.1 整型常量,整数:正整数、负整数和零 书写形式 十进制整数:0, 2

2、3, -54 八进制整数:数字前加一个0,如00,-014,057 十六进制数:数字前加一个0 x,如-0 x5a,0 x3c 短整型常量占2个字节,-32768-+32767 长整型常量占4个字节。 数字后一个l 或 L,如0L,64,-82L 40000等被自动认做长整型 10和10L的值相同,但内存表示不同。,第3章 基本数据类型、运算符和表达式,5,main() int a=12, b=8; printf(10)a+b=%dn, a+b); printf(a-b=%dn, a-b); printf(“(8)a+b=%o %#on,a+b,a+b); printf(“(16)a+b=%x

3、 %#xn,a+b,a+b); ,第3章 基本数据类型、运算符和表达式,6,3.2.2 实型常量,只使用十进制 浮点常数 十进制小数形式 123.45、456.78 指数形式 1e-2、4.5e3 单精度实型常量 123.45f、1e-2f、4.5e3F 长双精度型常量 123.45l、1e-2l、4.5e3L 占4个字节 有效数字7个,第3章 基本数据类型、运算符和表达式,7,3.2.3 字符常量,单引号括住的单个字符 字符常数的表示方法 a,A,5,%,$ 单引号内只能有一个字符,除非用“”开头 就是一个普通整数,也可以参与各种数学运算 每个字符具有一个0255之间的数值,可从ASCII表

4、查出 注意:5和整数5的区别 字符的数学运算在密码学内用得比较多 占一个字节,第3章 基本数据类型、运算符和表达式,8,main() printf(12345678901234567890n); printf(1:tWhats this?n); printf(2:t123babcn); printf(3:cat0dogn); ,第3章 基本数据类型、运算符和表达式,9,3.2.4 字符串常量,用双引号括住的由0个或多个字符组成的字符序列 I am a string 表示空字符串 转义字符也可以在字符串中使用 引号只作为字符串开始和结束的标志 C语言内部用0表示字符串的结束 除注释外,是唯一可以

5、出现中文的地方 “x”和x是不同的 串长的计算,第3章 基本数据类型、运算符和表达式,10,3.2.5 符号常量,也称宏常量 一般采用大写字母表示 #define 符号常量 常量 如 #define PI 3.14159 不是语句,而是一种编译预处理命令 宏替换(Macro Substitution),第3章 基本数据类型、运算符和表达式,11,3.2.6 宏定义命令,示例: #define R 2 #define D R+R #define D (R+R),#include #define PI 3.14159 #define R 5.3 main() printf(area = %fn,

6、PI * R * R); printf(circumference = %fn, 2 * PI * R); ,第3章 基本数据类型、运算符和表达式,12,3.3 变量,变量:程序运行过程中值可以变化的量 要明确变量名、变量值和变量类型 类型变量:具有某种数据类型的变量 使用变量的基本原则 变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义 声明的顺序无关紧要 一条声明语句可声明若干个同类型的变量 声明变量,是初始化变量的最好时机 不被初始化的变量,其值为危险的随机数,第3章 基本数据类型、运算符和表达式,13,3.3.1 变量的类型及定义,Int 整数,在绝大多数机器上占4个字节。T

7、C2中是2个字节。 short int 短整数,一般2个字节长。简写为short long int 长整数,一般是4个字节长。简写为long unsigned 用来修饰char、int、short和long,说明它们是无符号的整数(正整数和0) float 单精度浮点数,一般是4个字节长 double 双精度浮点数,一般是8个字节长 char 字符,一般是1个字节长,第3章 基本数据类型、运算符和表达式,14,示 例:,定义整型 int i,j,k; short a,b,c; long g1,g2; 定义无符号型 unsigned u1,u2; unsigned short us1; 定义实型

8、 float f1,f2,f3; double d1, d2; 定义字符型 char c1,c2,c3;,第3章 基本数据类型、运算符和表达式,15,3.3.2 变量初始化,变量的初始化:定义变量的同时赋予其初始值。 示例: int sum=0, fac=1; long g1=12345600; unsigned us=12; float f1=2.3,f2=4.3e-6 double d1=7.778; d2=0.34e2 char c1=a, c2=50;,第3章 基本数据类型、运算符和表达式,16,main() int a=12, b=8; float x=1.2,y=3.5; floa

9、t z=0; z=x+y; printf(a=%d,b=%dn, a,b); printf(a-b=%dn, a-b); printf(“a+b=%d n,a+b); printf(x=%f,y=%f,z=%fn, x,y,z); ,第3章 基本数据类型、运算符和表达式,17,3.3.3 变量的定义语句,定义整型 int I,j,k=1; long g1=0,g2; 定义无符号型 unsigned u1,u2=54; 定义实型 float f1,f2=1.5,f3; double d1=.3e7, d2; 定义字符型 char c1=a ,c2=70,c3;,第3章 基本数据类型、运算符和表达

10、式,18,3.3.4 有名常量的定义,用const修饰定义的变量为有名常量 const float pi = 3.1425926; 常量只能在定义时赋值,然后不能再改变其值 常数、 const常量和宏常量,都可以用来表示一个永远不会改变的数 前者不建议直接使用,而用后者代替,第3章 基本数据类型、运算符和表达式,19,3.3.5 char型与int型之间的关系,示例:将小写字母转换为大写字母,#include main( ) char ch = b; printf(%c, %dn, ch, ch); ch = b - 32; /* ch = b - (a - A) ; */ printf(%c

11、, %dn, ch, ch); ,第3章 基本数据类型、运算符和表达式,20,3.4 运算符与表达式,运算符:用来表示各种运算的符号。 算术运算符 +,-, *, /, % 赋值运算符 =, +=,-=,*=,/=,%= 增一(+)和减一(-)运算符 关系运算符 ,=,=,=,!= 逻辑运算符 求 n+m; n-m; n*m; n/m; n%m float x=10.0,y=3;求 x+y; x-y; x*y; x/y 求n+m-x*2/y ;n%m-n/2,第3章 基本数据类型、运算符和表达式,22,增1、减1运算,n+,n-,+n,-n +让参与运算的变量加1,-让参与运算的变量减1 作为

12、后缀运算符时,先取n的值,然后加/减1 作为前缀运算符时,先加/减1,然后取n的值 m = n+; 等价于 m=n; n+; m = +n; 等价于 n+; m=n;,第3章 基本数据类型、运算符和表达式,23,示例 int a=3,b=3; char c1=b,c2=B; 求+a-1;b-+1;+c1-1;c2-+1; 示例 int a=3,b=3; 求(a+)+(a+);(b-)-(b-) 增1、减1运算对象是变量,不能是表达式或常量 +5; (a-5)-; -a均是错的,第3章 基本数据类型、运算符和表达式,24,3.4.2 关系运算符与关系表达式,可用于比较数字和字符 ,=,5; 示例

13、2 a=1; b=a=1;,第3章 基本数据类型、运算符和表达式,25,示例 char c1=a,c2=A; int n1=66,n2=98; 求c1c2; n1=n2; 示例 int n1=1,n2=2,n3=3; 求n3n2n1; n1n2=n1;,第3章 基本数据类型、运算符和表达式,26,3.4.3 逻辑运算符和逻辑表达式,逻辑运算也被称为布尔(Boolean)运算 ,第3章 基本数据类型、运算符和表达式,27,3.4.4 赋值运算符和赋值表达式,赋值示例1 x=3.5; 赋值示例2 x=y=z=1.37+3*a; 自反赋值运算符 :+=、-=、*=、/=、%=、=、 等价,第3章 基

14、本数据类型、运算符和表达式,28,main() int a=12,n=5; a+=a; printf(1: %dn,a); a=12; a-=7; printf(2: %dn,a); a=12; a/=n-3; printf(3: %dn,a); a=12; a*=a/n; printf(4: %dn,a); a=12; a%=(n%=6)+3; printf(5: %d ,n=%dn,a,n); a=12; a-=a*=a; printf(6: %dn,a); ,第3章 基本数据类型、运算符和表达式,29,3.4.5 逗号运算符与逗号表达式,表达式1, 表达式2, ., 表达式n 多数情况下

15、,并不使用整个逗号表达式的值,更常见的情况是要分别得到各表达式的值 主要用在循环语句中,同时对多个变量赋初值等 for (i = 0 , j = 0; i j; i+, j+) 示例: int a, b, c; b= (a=1, c= a+5, a+,c+a*2),第3章 基本数据类型、运算符和表达式,30,3.4.6 条件运算符与条件表达式,把a和b中的最大值放入z中 if (a b) z = a;else z = b; 相当于 z = (a b) ? a : b; 此种表达式切忌用得过于繁杂 示例: int x=3, y=5, max; max= (xy)? x:y; 示例: int a=

16、2,b=2,c=2,d=2; 求a=b?(c=1):(d=0),第3章 基本数据类型、运算符和表达式,31,3.4.7 长度运算符,sizeof(数据类型符), sizeof(变量) 示例: int n; short s; long u3; float f; char c; 求sizeof(n); sizeof(s); sizeof(long); sizeof(int); sizeof(f); sizeof(c); sizeof(double); sizeof(u3); sizeof(char);,第3章 基本数据类型、运算符和表达式,32,main() unsigned a=0 x12,b=

17、0 x35; int c,d; short s1,s2; long l1,l2; printf(nnnsizeof_a=%un,sizeof(a); printf(sizeof_c=%un,sizeof(int); printf(sizeof_s2=%un,sizeof(s2); printf(sizeof_l1=%un,sizeof(l1); printf(sizeof_float=%un,sizeof(float); printf(sizeof_double=%un,sizeof(double); ,第3章 基本数据类型、运算符和表达式,33,3.4.8 位运算符,位逻辑运算符 ,第3章

18、基本数据类型、运算符和表达式,34,main() unsigned short int c,d=3,a=0 x12,b=0 x35; c=a; printf(a=%un,c); c=a ,第3章 基本数据类型、运算符和表达式,35,3.5 数据类型转换规则,表达式计算中的自动类型转换:就长不就短 示例:int a=2; float x=7.3,y; y=x/a; 结果存入变量时自动类型转换:就左不就右 示例:int a; float x=3; a=x*2; 运算中的强制类型转换 示例:int a; float x=7,y=4; a=(int)x/(int)y;,第3章 基本数据类型、运算符和表达式,36,综合示例,例1 设x=2.5,a=5,y=4.7,算表达式 x+a%3*(x+y)%2/4的值。 例2 设a=2,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论