C程序基础数据类型、运算符与表达式.ppt

上传人:wuy****n92 文档编号:70106940 上传时间:2023-01-16 格式:PPT 页数:26 大小:438.50KB
返回 下载 相关 举报
C程序基础数据类型、运算符与表达式.ppt_第1页
第1页 / 共26页
C程序基础数据类型、运算符与表达式.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《C程序基础数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《C程序基础数据类型、运算符与表达式.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第2章章 数据类型、运算符与表达式数据类型、运算符与表达式第一节 数据数据的表示数据是程序的基础,是语句加工的对象,数据:常量和变量 数据类型:基本类型:int char float double 枚举类型类型 构造类型:数组类型 结构体类型 共用体类型 指针类型2.1.1 标识符 标识符:用来对C程序中的常量、变量、语句标号以及用户自定义函数的名称进行标识的符号。三条规则:1.由字母、数字和下划线组成,长度不超过32的字符,由字母和下划线开头;2.大小写字母表示不同意义,即代表不同的标识符;3.标识符不能与C关键字同名.关键字:己被C本身专用的字.如:int double for brea

2、k long 等.练习:判断下列标识符是否正确?china 5 a 4_decision bomb?key.word _board FL_OAT char 2.1.2 常 量 常量:在程序运行过程中其值不能被改的量.常量的类型(一般由字面形式进行判断):1)整型常量(如:6,-120);0.000001227 2)实型常量(如:9.14,-8.12 1.227e-6);3)字符型常量(如:a,v);4)符号常量(如:#define PI 3.1415926).2.1.3 变量1)变量的定义 变量:在程序运行过程中其值可以被改变的量.命名方法:A.符合标识符的命名法则;B.结合实际意义来命名.变

3、量使用前须说明,形式如下:数据类型 如:int m,j,n;unsigned char ch,a10,*p;说明:a).在变量名列表中,变量与变量之间用逗号分开;b).变量说明通常放在函数的开始或函数的外部,或在复合语句的内部.2)变量的赋初值变量的赋初值 (1).一个变量占据着一个实际的存储单元,变量名实 际上是存储单元的标志,而存储单元中的内容是 变量的值;(2).对变量预先设置初值,且允许在定义变量的同时 对其赋值.如:int a=13;float f=7.8;char a=s;(3).允许在同一个变量说明语句中仅对部分变量赋 初值或同时对几个变量赋同一个初值;如:int a,b,c=1

4、3;int a=b=c=6;(不合法)第二节:基本数据类型 基本类型:整型、实型、字符型;构造类型:数组、结构体、共用体等。2.2.1 整型 最常用的类型:类型标识符 长度(byte)int 2 short 2 long 4 unsigned int 2 unsigned short 2 unsigned long 4 例2.1 main()int a,b,c;unsigned long d;a=123;/*十进制*/b=045;/*八进制*/c=0 x3D8;/*十六进制*/d=0773L;/*八进制长整数*/printf(“a=%d,b=%o,c=%x,d=%lo”,a,b,c,d);整型

5、数据在内存中的存放形式:整型数据在内存中的存放形式:以二进制补码的形式存储以二进制补码的形式存储正数的补码与原码相同正数的补码与原码相同负数的补码是在原码的基础上按位取反再加负数的补码是在原码的基础上按位取反再加1 1最左位为最左位为0 0是正数,为是正数,为1 1是负数。是负数。整型数据的溢出问题:整型数据的溢出问题:见书见书23-242.2.2 实型 两种类型:单精度型和双精度型 类型标识符 长度(byte)float 4 double 8 (还有不常用到的长双精度)浮点型数据是按指数形式存储超出有效数字范围的将被舍去(可能引起误差)对于所有的浮点型常量,编译系统将视其为双精度数据来处理(

6、把浮点型常量赋值给一个单精度变量时将会警告)2.2.3 字符型 1)字符型常量 字符型常量:用一对单引号括起来的单个字符。一般字符:如:A,9,*等.转义字符:如:n,t等.关于转义字符详见P13.2)字符变量 char c,ch,c1=*;说明:(1).用char定义,单字符值;(2).字符和整数的机内码是一致的;如:int a=42;char b=*;(3).字符型数据和字符串数据是有区别的.如:*占据一个字节;“*”占据二个字节,存储了一个字符串的 结束标志字符0.第三节 基本运算符和表达式 类型:算术运算符、关系运算符、;逻辑运算符、位运算符等等。算术运算符和算术表达式 1)算术运算符

7、 双目运算符:+-*/%单目运算符:+-+-(取正、取负)。例2.2 int a=5;int b=4;int c=a+/-b;int d=a%4;b 变量先自减1,再计算 a除以b.操作对象限于变量操作数为整数2)算术运算符的运算优先级和结合性 优先级:指同一个表达式中不同运算符进行计算时的 先后次序;结合性:指相同优先级的多个运算符的求值顺序。优先级 运算符 结合性 1 ()由内向外 2 +-(取负)自右至左 3 /%自左至右 4 +-自左至右 3)算术表达式 如:+i g*t*t/2.0 说明:1.在算术表达式中,所有的字符都是在一条水平线上;2.运算符不能省略;3.一律用圆括号,若是多重

8、括号,由内向外逐层计算。4)算术型数据的混合运算 (1)自动类型转换(隐式类型转换)规则:A,由低级向高级转换;B,一个运算符有两个类型不同的操作数,由 低转向高级的类型,结果为较高的类型。高级低级doublelongunsignedintfloatChar,short例#include main()float y,z=242.5;unsigned x=2;short s=4;y=10+b+5.7*x+z/a-s*12.5;printf(“y=%f”,y);强制类型转换(显式类型转换)根据程序的需要,将某数据强制转换成指定的数据类型.形式:(类型标识符)表达式 如:(int)(2.7+6.8)

9、(float)x/y 注明:经强制类型转换后得到的值存储在一个临时的中间变量中,变量或表达式原来的类型并没有发生任何变化.例2.4#include main()float x=4.55;printf(“n(int)x=%d,tx=%fn”,(int)x,x);运算结果:(int)x=4,x=4.550000 注意 (1)两个整数直接相除,结果自动取整,丢弃小数部分;例如:设float x,y;x=10/4;/*结果为:2.0*/y=10.0/4;/*结果为:2.5*/(2)自增1、自减1运算符为单目运算符,其运算的优 先级高于算术运算中的所有双目运算符,且运算对 象只能整型、字符型和指针型变量

10、,不能是常量;如:3+ch+是错误的 前缀形式:n=+i;后缀形式:n=i+;例 设int x=2;请计算下列表达式中x,y的值.y=+x;/*x=x+1;y=x*/y=x+;/*y=x;x=x+1*/y=x+*x+;y?y=+x*x+;y?y=+x*+x;y?4 9 162.8 逗号运算符和逗号表达式 1)逗号运算符 一.逗号“,”的用法:(1)用作分隔符.如:int x,y,z;(2)用作运算符.如:a=2*6,a-4,b+5;用作运算符需注意:(1)是一个双目运算符;(2)优先级是所有运算符中最低的;(3)运算顺序是自左至右的;(4)只在有“=”的式子中才有赋值功能.如:x=4/2,x+

11、3,x+;2)逗号表达式 定义:用逗号运算符将若干表达式连接 起来的式子.形式:表达式1,表达式2,表达式n 注意:最后一个表达式的值为整个逗号 表达式的值.如:a=7.3,b=1.1,12+b,a+b;计算下面逗号表达式 的值:y=(x=5,x+4,+x);y?n=(m=3,+m,m*=2);n?n=(m=3,m+,m*=2);n?688位运算符和位表达式 C语言提供类似汇编语言的功能,完成这功能的即是位运算符.1)位运算符:!非 !1=0 !0=1&按位与 1&1=1 1&0=0 0&0=0 0&1=0|按位或 1|1=1 1|0=1 0|1=1 0|0=0 按位异或 11=0 10=1

12、01=1 00=0 左移 m 右移 mn 右 低 高 注意:1,“!”为单目运算符,其它均为双目 运 算符;2,对二进制位进行运算.2)位运算符规则:如:!a(取非)a&b(见0则0)a|b(见1则1)ab(同则0,异则1)am(右移m位)口决:箭头朝哪就向哪移3)位运算优先级 !&|高 低 注意:运算对象是 int short unsigned long char 而不能float double例如:假设a=00111101,b=10000111机器字长为8 求:a 11000010 a&b 00111101 a|b 00111101&10000111|10000111 00000101 1

13、0111111 ab2 a(b2)a(100001112)a00011100 00111101 00011100 00100001例:输入两个整数,存入a,b变量中,并由a,b两个数生成新的数c,其生成规则是:将a的低字节作为c的高字节,b的低字节为c的低字节,并显示出来#include main()int a,b,c;printf(“nInput a,b:n”);scanf(“%d%d”,&a,&b);c=(a&0 x00ff)8|(b&0 x00ff);printf(“c=%d”,c);设 a=0110110111101100 b=0100011100100110 a&0 x00ff:0110110111101100&0000000011111111 0000000011101100(a&0 x00ff)8 1110110000000000b&0 x00ff|0000000000100110 c=11101100001001104)复合位运算符:&=按位与赋值|=或 =异或/*同为0异为1+*/=右移位赋值 例如:x&=y x=x&y x|=y x=x|y x=y x=xy x=y x=x=y x=xy 后赋给x*/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁