C语言算术、赋值、关系、逻辑运算课程7.docx_第1页
C语言算术、赋值、关系、逻辑运算课程7.docx_第2页
C语言算术、赋值、关系、逻辑运算课程7.docx_第3页
C语言算术、赋值、关系、逻辑运算课程7.docx_第4页
C语言算术、赋值、关系、逻辑运算课程7.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

C语言算术、赋值、关系、逻辑运算 课程7编辑作者 张进杰 2012.11.18 嵌入式交流QQ群24799012运算符和表达式是C语言里面十分重要的一课,只有学好了这一节课,才能为今后的嵌入式程序编程,打下良好的基础。另外将讲到进制转换,方便嵌入式芯片引脚功能查表标识符和关键字标识符:用来标识程序中的变量、符号常量、函数、数组、类型、文件等对象的名字。 标识符只能由字母、数字和下划线组成,且第一个字符必需为字母或下划线。C语言中大小写字母是两个不同的字符。 关键字:标识符的一个特殊的集合。其中的标识符在C语言中有预先定义好的特殊意义。不能用于其他任何目的。C语言的关键字共32个: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 运算符、表达式和计算运算符:C语言中用于描述数据运算的特殊符号。 表达式:用运算符将C语言的各种运算对象连接起来,组成符合C语法要求的式子,称表达式。运算对象包括常量、变量、函数等。计算:表达式的求值过程称计算。 C的运算符主要分为四大类: 算术运算符 (+加 减 乘 /除 %取余 +自增1 自减1)关系运算符(大于 =大于或等于 =小于或等于 !=不等于) 逻辑运算符 (!逻辑非 &逻辑与 |逻辑或 )位运算符 (按位右移 按位取反 |按位或 按位异或 &按位与 )特殊运算符 : 赋值运算符(=)、条件运算符(? :) 逗号运算符(,)、指针运算符(* &)、 求字节运算符(sizeof)、 强制类型转换运算符(类型)、 分量运算符(. -)、下标运算符( )、函数调用(( ))等。 赋值运算符与赋值表达式赋值运算符:= 赋值表达式:由赋值运算符组成的表达式 形式: 变量名=表达式 例x=y+2,x=x+1复合赋值运算 10种复合赋值运算符 +=、 -=、 *=、 /=、 %=、 =、 &=、 =、 |= 将形如: 变量名=变量名+表达式的表达式 简化成: 变量名+=表达式的形式 例x+=1等价于x=x+1、x-=1等价于x=x-1、x*=1等价于x=x*1、x/=1等价于x=x/1、x%=1等价于x=x%1赋值运算同样要求运算对象的类型一致。如果赋值运算符两侧的数据类型不一致,系统自动把赋值号右边的类型换成左边的类型。也可用强制转换的方式,人为地进行转换后赋给赋值号左边的变量。自增运算符前置和后置的区别作为表达式时:,+ 前置时,自增表达式(+n)的值等于其操作数自增后的值;+ 后置时,自增表达式( n+)的值等于其操作数自增前的值例:int n = 5, post = 1, pre = 1;pre = +n + pre; / 运算结束后 pre 为 7,n 为 6n = 5;post = n+ + post; / 运算结束后 post 为 6,n 为 6上例中,+n 的值等于 n 自增后的值,即 6,所以 pre 最后得到的值为 7。n+ 的值等于 n 自增前的值,即 5,所以 post 最后得到的值为 6。实例1:自增运算符前置和后置#include main() int x,y,z; x=3; /* 十进制整数3赋给变量x */ y=+x+3; /* 自增运算符前置,+x的值等于自增后的值为4,4+3=7 */ printf(%d %dn,x,y); /* 按十进制整数格式输出x和y的值 */ z=x+ +5; /*自增运算符后置,x+的值等于自增前的值为4,4+5=z,最后z+的值必定为5*/ printf(%d %dn,x,z); /* 按十进制整数格式输出x和z的值 */ 在Microsoft Visual C+ 6.0中编译、链接、执行后的结果:逗号运算符及其表达式C语言中,逗号“,”的用法有两种:一种是用作分隔符,另一种是用作运算符。逗号表达式形式:表达式1,表达式2,表达式3,.,表达式n例a=2*6,a-4,a+15;当逗号作为运算符使用时是一个双目运算符,其运算优先级是所有运算符中最低的。逗号运算符的运算顺序是自左向右的,因此上述赋值语句的求值顺序为:先计算2*6并赋予a(结果是a=12),再计算a-4(只计算,不赋值),最后计算a+15(只计算,不赋值),最终以27作为整个逗号表达式的值。请注意,后面两个表达式的值仅作了计算,而并没有赋给a,所以a的值仍然为12。逗号表达式求值过程:分别求逗号表达式每一项的值,并以最后一个表达式n的值作为整个逗号表达式的值。实例2:逗号表达式#include void main() int a; a=3*5,a*4,a+5; printf(%dn,a);在Microsoft Visual C+ 6.0中编译、链接、执行后的结果:实例3:逗号表达式#include int main() int a=2,b=4,c=6,x,y; y=3*5,y=(x=a+b),y=0,y=(b+c); printf(y=%d,x=%dn,y,x); return 0;在Microsoft Visual C+ 6.0中编译、链接、执行后的结果:在C语言中,函数的返回值,可以根据需要返回,并且不一定是0,一般函数的返回值是整数时,对返回值没有什么要求可以写成return 0;当指定返回值类型为int整型时,可以最后用return0返回;不确定返回值类型,可以使用void无值类型,使用void main()后,不能再用return 0来返回。分析这个程序:定义了a,b,c,x,y为int整型,逗号表达式总体上看有2个,第二个里面又有逗号3个表达式,x计算结果为a+b=6,y的计算结果为第二个表达式里面的最后一个y=b+c=4+6=10验证:在Microsoft Visual C+ 6.0中编译、链接、执行后的结果实例4:用C语言写一个程序:输入两个十进制数,并输出它们按位或的结果#includevoid main()int a,b,c;printf(请输入两个数:);scanf(%d %d,&a,&b);c=a|b;printf( a=%dn b=%dn 它们按位或的结果为:c=%dn,a,b,c);分析程序:所谓位运算是指进行二进制的运算。3化为二进制数为0011,5化为二进制数为0101,按照按位或运算规则:1|1=1、1|0=1、0|1=1、0|0=0,它们按位或的结果为0111,化为十进制数,便为7实例5:下面的程序,可以将输入计算机的任意十进制数转化为二进制数#include #include int main(void) int a,i=0; unsigned int mark=1=1; putchar(n); return 0;数制和码制以及进制转化数制是一种计数方法,常用的计数进制有二进制、八进制、十进制、十六进制二进制只有0、1两个数码,现在使用的计算机按照冯诺依曼Von Neumann的存储程序原理工作的,全称为数字式电子计算机,在计算机中都是以二进制编码形式进行表示和处理的。具体资料可查阅数字电子技术第3版,单片机原理与应用及C51程序设计第2版,和其它相关资料。a. 十进制数转换成其它进制数,采用

温馨提示

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

评论

0/150

提交评论