版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据类型、运算符与表达式数据类型、运算符与表达式C语言基本数据类型常量和变量运算符和表达式运算符的优先级和结合性标准输入输出函数23 数据为什么要区分类型? 不同类型的数据代表不同的 数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类 从基本数据类型到抽象数据类型 无数据类型 基本数据类型 构造数据类型 抽象数据类型4空类型(void)数据类型基本类型构造类型指针类型()字符型(char)数值类型枚举类型(enum)数组类型( )结构体类型(struct)共用体类型(union)整型实型单精度型(float)文件类型(file)双精度型(double)5数据属于不同类别Afric
2、aThe quick brown foxTRUE数据 非数值数值整型非整型9002.129999/12/20032.175123Jackie Chanchar数据类型数据类型非数值非数值数值数值整型整型intshort intlong intdoublefloat非整型非整型C数据分常量和变量两种: 常量,程序运行过程中一直不变的数据量。 变量,程序运行中可改变数据取值的数据量。常量的例子: 3.14159265358979323846变量的例子: y=ax常量与变量都有类型,要先定义、后使用。常量与变量都有类型,要先定义、后使用。67 整型常量 19、-31 长整型常量 123l、123L、
3、123456l、123456L 无符号型常量 123u、 123U 实型常量 十进制小数形式 123.45、456.78 指数形式 1e-2、4.5e3 单精度实型常量 123.45f、456.78F、1e-2f、4.5e3F 长双精度型常量 123.45l、456.78L、1e-2l、4.5e3L8 以数字“0”开始的整型常量是八进制 011、-098 010和10大小不一样 以“0 x”或者“0X”开始的整型常量是十六进制 AF和af用来表示十进制的1015 0 x12、-0 x1F, -0 x1f9 字符常量的表示方法 a,A,8,?,$ 单撇号内只能有一个字符,除非用“”开头 可转换成
4、整数,参与各类数学运算 每个字符具有一个0255之间的数值,参见ASCII表 注意7和整数7的区别密码学中多用字符的数学运算 转义字符转义字符含 义转义字符含 义n换行,跳到下一行开头b退格(Backspace)t水平制表,横向跳到下一制表位置(Tab)r回车(Return),将当前位置移至本行开头v垂直制表,竖向跳到下一制表位置f走纸换页,跳到下一页开头0空字符,用于字符串结束标志反斜杠()单引号()?问号(?)”双引号(”)a响铃报警ddd八进制数值,13位八进制数所代表的字符xhh十六进制数值,12位十六进制数所代表的字符10 用双引号括住的由0个或多个字符组成的字符序列 I am a
5、string 表示空字符串 转义字符也可在字符串中使用 引号只作为字符串开始和结束的标志 C语言内部用0表示字符串的结束 除注释外,是唯一可以出现中文的地方 x和x是不同的 里定义了一系列专门的字符串处理函数11 #define 标识符 字符串 编译预处理命令 标识符一般采用大写字母表示 例:#include #define PI 3.14159#define R 5.1main() printf(PI*R*R = %fn, PI * R * R); printf(2*PI*R = %fn, 2 * PI * R);12 用const修饰定义的标识符为常量 const float pi = 3
6、.1425926; 常量只能在定义时赋值,然后不能再改变其值 常量、 const常量、宏常量和枚举常量,都用来表示一个永远不会改变的数 前者不建议直接使用,而用后三者代替13程序内存编写程序时,常常需要将数据存储在内存编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个中,方便后面使用这个数据或者修改这个数据的值。数据的值。通常使用变量来存储数据。使用变量可以通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。要显示数据或执行数据操纵。存储 PricePrice * 5%值存储为Discoun
7、tPrice-Discount100.5值存储为Result9.5141. 变量名。每个变量都必须有一个名字 变量名。变量命名遵循标识符命名规则。2. 变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名(或者地址)来引用变量的值。3. 变量的地址。变量在内存中的位置4. 变量的类型。如何解释该变量15C C 语言中,变量命名需要遵循一定的规则语言中,变量命名需要遵循一定的规则有效名称有效名称principalcost_pricemarks_3lastnamecity无效名称无效名称123ratecurrency$discount%zip code 变量的命名规则: 变量名可由字
8、母、数字和 _(下划线)组合而成 不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中保留字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 ART与变量art是两个不同的变量16 使用变量的基本原则 变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义 声明的顺序无关紧要 一条声明语句可声明若干个同类型的变量 声明变量,是初始化变量的最好时机 不被初始化的变量,其值为危险的随机数int a,b; char c;Float f1,f2; double i;
9、 17float 在在C C语言中用于存储语言中用于存储单精度浮点数单精度浮点数double 在在C C语言中用于存储语言中用于存储双精度浮点数双精度浮点数使用不当导致舍入误差使用不当导致舍入误差32位10-38至至10+38,7位有效数字位有效数字内存内存floatdouble213.5671435568967 64位位取值范围取值范围:10-308 至 1030816位有效数字位有效数字18#includemain() char a,b; a=x; b=y; a=a-32; b=b-32; printf(%c,%cn%d,%dn,a,b,a,b);算术运算主要指 +,-,*,/ ,%+ -
10、 *运算对于char、int、float、double等类型的运算按数学规则进行,但应注意计算溢出或发生隐式转换。/运算对于char、int等整数类型而言不精确,运算结果等于数学结果的整数部分,小数部分将舍弃(不是四舍五入)。与浮点类型,运算结果为数学运算的近似值,精度与类型有关。%运算只对char、int等整数类型有意义。对负数进行%运算的结果未定义。20+、-运算符即自增、自减运算,可前置和后置: +TC; TC+; 前置形式中,首先计算增量,然后计算表达式的值 后置形式中,首先计算表达式的值,然后计算增量 例变量x初值表达式运算后y的值运算后x的值2y=+x332y=x+232y=-x1
11、12y=x-2121赋值操作符除=号外,还有+=、-=、*=、/=、%=等形式。运算符表达式计算结果(设 X=10)+=X+= 5X = X + 515-=X-= 5X = X - 55*=X*= 5X = X * 550/=X/= 5X = X / 52%=X%= 5X = X % 5022,=, 0 & x 0 | x b) ? a : b; 求变量a与b的最大值 min = (ab) ? a : b; 求变量a与b的最小值26运算符运算符功能功能 按位取反按位取反右移位右移位& &按位与按位与 按位异或按位异或| |按位或按位或27优先级优先级运算符运算符结合性结
12、合性优先级优先级运算符运算符结合性结合性1( ) 8&. -92+ - ! + -* &(type) sizeof10|11&3* / %12|4+ -13? :514= += -= *=/= &= =|= =6 = 7= !=15,28在进行赋值操作时,会发生类型转换将取值范围小小的类型转为转为取值范围大大的类型安全安全反之不安全 如果大类型的值在小类型能容纳的范围之内,则平安无事 但是,浮点数转为整数,会丢失小数部分,非四舍五入 反之,转换结果必然错误,具体结果与机器和实现方式有关。29同种数据类型的运算结果,还是该类型不同种数据类型的运算结果,是两种类型中
13、取值范围更大的那种long double double float long int short char把数据赋值给另外一种类型变量也会发生自动类型转换从小到大,顺利转换从大到小,可能丢失信息30格格式:式:(类型说明符) 表达式功能功能:把表达式的运算结果强制转换成类型说明符所表示的类型。例举:例举:float cc; (double)cc;31int count = 150;printf ( %d , count);printf函数名函数名 %d count输出表列输出表列格式转换说明符格式转换说明符说说 明明%d以带符号的十进制整数输出,对应以带符号的十进制整数输出,对应int 型型%
14、ld将参数按长整数形式转换输出,对应参数应是将参数按长整数形式转换输出,对应参数应是long 类型类型%c以字符形式输出单个字符以字符形式输出单个字符%s输出一个字符串输出一个字符串%f以小数形式输出浮点数以小数形式输出浮点数(6 位小数位小数)32#include main() int a=123; float b=123.1234567; double c=12345678.1234567; char ch=f; printf(a=%d,%8.5d,%08d,%o,%#xn,a,a,a,a,a,a); printf(b=%f,%-10.3f,%e,%gn,b,b,b,b); printf(
15、c=%f,%8.4f,%gn,c,c,c); printf(ch=%c,%8cn,ch,ch); printf(%s,%.4sn,abcdef,abcdef);33scanf(%d,&num);转换字符串转换字符串&符号用于指明变量在内存中的位置符号用于指明变量在内存中的位置变量名称变量名称格式字符格式字符含含 义(输入类型)义(输入类型)%d输入十进制整数%u输入无符号十进制整数%c输入单个字符%s输入字符串%o输入八进制整数%x输入十六进制整数%f、%e、%g输入实数,以小数或指数形式皆可34#include main() int a, b; printf(Please i
16、nput a and b:); scanf(%2d%*2d%2d, &a, &b); printf(a=%d, b=%d, a+b=%dn,a,b,a+b);Please input a and b: 123456a=12, b=56, a+b = 68Please input a and b: 12345aa=12, b=5, a+b = 1735字符型变量字符型变量字符型数据字符型数据字符型数据字符型数据36函函 数数功功 能能sqrt(x)计算x的平方根fabx(x)求求x的绝对值的绝对值pow(x,y)计算计算x的的y次方次方exp(x)计算计算e的的x次方次方log(x)计算计算x的自然对数的自然对数(以以e为底为底)log10(x)计算计算x的对数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建三明市三元区列西小学招聘临聘教师1人笔试备考题库及答案详解
- 2026安徽江东文旅康养集团有限公司招聘17人考试备考试题及答案详解
- 2026乐东黎族自治县渔政事务服务中心招聘城镇公益性岗位3人考试参考题库及答案详解
- 2026年黄山市市直机关公开遴选公务员9人考试备考题库及答案详解
- 2026年重庆市北师大版九年级英语下册第12单元阅读理解专项训练
- 2026年部编版初中英语八年级下册第3单元阅读理解专项训练
- 2026年幼儿园大班社会角色扮演能力测试
- 2026年陕西苏教版初中英语下册第8单元阅读理解题
- 2026年福建省人教版八年级英语下册第12单元写作专项训练
- 2026年无人机操控与维护技能模拟测试
- 学前比较教育全套教学课件
- 生产制造行业岗位薪酬等级表
- 《图形创意》教案
- GB/T 42401-2023激光熔覆修复缺陷质量分级
- 外科学急性化脓性腹膜炎
- 人教版四年级语文上册《长城》课件
- 北京汇源审计报告
- 教案伦理学原理课件
- 消除浪费(七大浪费)课件
- 内功四经内功真经真本全书
- 常用公文写作规范与技巧课件
评论
0/150
提交评论