C语言数据类型、运算符和表达式.ppt_第1页
C语言数据类型、运算符和表达式.ppt_第2页
C语言数据类型、运算符和表达式.ppt_第3页
C语言数据类型、运算符和表达式.ppt_第4页
C语言数据类型、运算符和表达式.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

C语言 数据类型、运算符与表达式 徐艳艳 信息学院 1 本次课程所讲内容 lC语言的基本数据类型 l数据类型之间的混合运算 l运算符和表达式 2 本次课程所讲内容 lC语言的基本数据类型 l数据类型之间的混合运算 l运算符和表达式 3 数据的基本类型 数据基 本类型 整 型 浮点型 字符型 短整型(short) 整型(int) 长整型(long) 单精度浮点型(float) 双精度浮点型(double) 长双精度(long double) 数据的基本表现形式为 常量和变量 4 标识符 l标识对象名字的有效字符序列称为标识符 l关键字,如int, float, char, if, while, for l系统预定义的标识符,如printf, main, sin l用户标识符,如用户自己定义的符号常量 、变量、函数名等 l标识符只能由字母、数字和下划线组成,且 第一个字符不能为数字 circle area c1 _sum_a PI 1_c ab Doc. Bao bei int 标识符区分大小写 5 常量 l在程序运行过程中,其值不能被改 变的量称为常量 l整型常量 如 12,0,-3 l浮点型常量 如 4.6,-1.23, 1.2e3 l字符型常量 如 a,+,n l符号常量 #define PI 3.1415926 l符号常量名用大写 l符号常量名应“见名知意” l符号常量能够做到“一改全改” PI=3.1415926 double PI 6 #define PI 3.1415926 #include void main() double r,area,circle; r=3.6; area=PI*r*r; circle=2*PI*r; printf(“%lf,%lfn“,area,circle) ; c2_1.c 符号常量 浮点型常量 整型常量 字符型常量 常量举例 7 变量(1) l在程序运行过程中,其值可以改变的量 称为变量 l变量的定义 数据类型 变量名=变量值; 10 两个字节 a 地址 地址 变量名 变量值 存储单元 内存 short a=10; 8 变量(2) l变量应该“先定义,后使用” l不同数据类型的变量,编译系统分配 不同大小的存储单元 l用sizeof(类型标识符)来查询变量 的存储空间大小(以字节为单位) lprintf(“%dn“,sizeof(int); 9 整型数据 10 整型变量 l基本整型 int l短整型 short int l长整型 long int l占字节数排序 lshortintlong lVisual C+给整型变量分配字节情况 lshort: 2个字节 lint: 4字节 llong: 4字节 例如,短整型(short)变量 的数值范围是-3276832767 11 无符号整型变量 l无符号基本整型 unsigned int l无符号短整型 unsigned short int l无符号长整型 unsigned long int l占字节数排序 unsigned shortunsigned intunsigned long lVisual C+给整型变量分配字节情况 lunsigned short: 2个字节 lunsigned int: 4字节 lunsigned long: 4字节 例如,无符号短整型 变量的数值范围是 065535 不能存放负整数 12 #include void main() short a,c; unsigned short b,d; a=32767; b=a; c=a+1; d=b+1; printf(“c=%d,d=%dn“,c,d) ; c2_2.c 程序运行结果: c=-32768,d=32768 整型变量举例 13 整型常量 l表示形式 l十进制,如123,-456 l八进制,如012,-016 l十六进制,如0xA,-0x12 l整型常量的类型 l值在-21474836482147483647范围内,按int型处 理,可以赋值给int 和long型变量 l123l,456L表示long型常量 l123u,456U表示unsigned int型常量 14 浮点型数据 15 浮点型变量 l单精度 float l4个字节 l双精度 double l8个字节, l长双精度 long double l8个字节 在VC+中所占的 存储空间 16 浮点型常量 l编译系统把浮点型常量作为double 处理 l若想把浮点型常量作为float处理, 可以在数值后面加f或者F,这样会 按float处理 l1.23f,3.66F 17 c2_3.c #include void main() float a; a=3.141592612; printf(“a=%fn“,a); 程序运行结果: a=3.141593 c2_4.c #include void main() double a; a=3.141592612; printf(“a=%10.9fn“,a); 程序运行结果: a=3.141592612 换作double 会怎么样? 浮点型变量举例 18 字符型数据 19 字符常量 l用单撇号括起来的一个字符 l例如,a 、A、? l转义字符 l以反斜杠“ ”开头,将反斜杠后面的字符转 换为其他的意义 ln(换行),t(水平制表),b(退格),r(回车) lf(换页),a(发出铃声)、()、()、”(”) lddd(13位八进制数所代表的字符) lxhh(12位十六进制数所代表的字符) 20 t 、 r 和 n l分成一个个区,一般8位一个区,t 跳到下个 区的开头,具体要看现在光标的位置,不一定 跳多少格 lr 移到行首 ln 移到行首 + 换行 21 转义字符的使用(1) c2_5.c #include void main() printf(“a“); printf(“101n“); printf(“xFn“); c2_6.c #include void main() printf(“boytgirln“); printf(“atbrUn“); 程序运行结果: boy girl U b 22 转义字符的使用(2) c2_7.c #include void main() printf(“ab ct derftgn“); printf(“hti bbj kn“); fg hi abcde jk 23 字符变量 l字符型 char l定义 char c1,c2; l赋值 c1=a; c2=b; l字符型变量在内存中占1个字节 l字符型变量的值在内存中的表现形式为该 字符对应的ASCII值,是二进制数 lc1的值为:01100001(97) lc2的值为:01100010(98) l字符型数据和整型数据之间可以通用,也 可以进行算术运算 24 c2_8.c #include void main() char c1,c2; int i,j; c1=a; c2=98; i=A; j=66; printf(“%c,%c,%c,%cn“,c1,c2,i,j); printf(“%d,%d,%d,%dn“,c1,c2,i,j); 字符数据和整型数据 可以互相赋值 程序运行结果: a, b, A, B 97,98,65,66 25 c2_9.c #include void main() char c1,c2; c1=A; c2=c1+32; printf(“%c,%cn“,c1,c2); 字符数据和整型数据 可以进行算术运算 程序运行结果: A,a 26 字符串常量 l由一对双撇号括起来的字符序列 l“hello,2008”,“a”,“bao bei”, “M.D.John” l可以输出字符串 lprintf(“One world, one dream.”) l不能将字符串常量赋给字符变量 lChar c; lC=a; lC=“a”; china0 a0 “a” “china” 字符串结束标志,ASCII码 为0,是空操作字符 27 数据类型的混合运算 28 基本数据类型之间的混合运算 double float long unsigned int char、short 隐式转换 : 低 高 29 c2_10.c #include void main() int i; float f; double d,result; long e; i=12; f=3.6F; d=12.2; e=366; result=10+a+i*f-d/e; printf(“%fn“,result); 数据类型之 间的隐式转 换举例: 30 运算符和表达式 31 算术运算符 l加法运算符 or 正值运算符 l减法运算符 or 负值运算符 l乘法运算符 * l* 不能写为 or l除法运算符 / l模运算符 or 求余运算符 l%两侧必须为整数,所以它只适用于 整型和字符型 l7%4,120%a 32 算术表达式 l用算术运算符和括号将运算对象 连接起来的、符合C语法规则的 式子,称为C算术表达式 la+b-c la*b-c la*(b-c) la*b/c-1.5+a+5%3 33 算术运算符的优先级与结合性 l优先级(运算符的优先级不同时) l先括号,再乘除(包括求余运算),后加减 la*(b-c)+e%d l结合性(运算符的优先级相同时) l算术运算符的结合性为“自左至右”,称 为“左结合性”,先与左边的运算符结合 la+b-c,a*b/c 34 强制类型转换运算符 l(类型名) (表达式) l(float)7/4 l(float)3.14 l(int)3.6 l(char)23.6 c2_11.c #include void main() float a; int i; char c; a=(float)3.141592612; i=(int)a; c=(char)23.6; printf(“a=%f,i=%d;c=%cn“,a,i,c); 35 自增(+)、自减(-)运算符 +i, i,-i i 在使用之前,先使变量i的值加/减1 i+,i+,i i- 在使用之后,再使变量i的值加/减1 (1) +a,a+的区别 如: a=5;b=+a; a=5;b=a+; a=6,b=6; a=6,b=5; 36 (2)+,-只能用与变量,不能用于常量或 表达式 如: 2+ (2*b-1)- (3)与其它运算符混合使用时,应注意结合 方向“自右向左” 如: -a+ -(a+) (-a)+ 怎么理解 i+j 编译器尽可能多地 自左向右将若干个 字符组成一个运算 符 37 自增、自减运算符举例 c2_12.c #include void main() int i,j,k,u,w; i=3; j=i+; k=+i; u=-i+; w=-+i; printf(“%d,%d,%d,%d,%dn“,i,j,k,u,w); 程序运行结果: 7, 3, 5 -5 -7 38 逗号运算符和逗号表达式 一般形式: 表达式1,表达式2,表达式3,表达式n 如: 2+3,3*5 则表达式最后值为 . 15 (1) 优先级最低 如: x=2+3,x-4 则表达式最后值为 . 1 39 (2) 逗号表达式可以嵌套,即表达式n本身 也可以为一逗号表达式 如: (x=2*5,x-3),x*4 则表达式最后值为 . 40 (3)并非所有出现逗号的地方,就可以作为 逗号表达式 如: printf(“%

温馨提示

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

评论

0/150

提交评论