电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C语言运算符大全讲解

9页
  • 卖家[上传人]:206****923
  • 文档编号:90600422
  • 上传时间:2019-06-13
  • 文档格式:DOC
  • 文档大小:60.04KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、C语言运算符大全C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。C语言有三大运算符:算术、关系与逻辑、位操作。另外,C还有一些特殊的运算符,用于完成一些特殊的任务。2.6.1算术运算符表2-5列出了C语言中允许的算术运算符。在C语言中,运算符“+”、“”、“*”和“/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。当“/”被用于整数或字符时,结果取整。例如,在整数除法中,10/3=3。一元减法的实际效果等于用-1乘单个操作数,即任何数值前放置减号将改变其符号。模运算符“%”在C语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。 最后一行打印一个0和一个1,因为1/2整除时为0,余数为1,故1%2取余数1。2.6.2自增和自减C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的自增和自减运算符,+和-。运算符“+”是操作数加1,而“-”是操作数减1,换句话说:x=x+1;同+x;x=x-1;同-x;自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+

      2、1;可写成+x;或x+;但在表达式中这两种用法是有区别的。自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。请看下例:x=10;y=+x;此时,y=11。如果程序改为:x=10;y=x+;则y=10。在这两种情况下,x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码要快得多,所以尽可能采用加1或减1运算符是一种好的选择。下面是算术运算符的优先级:最高+、-(一元减)*、/、%最低+、-编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计算顺序。C语言处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高。2.6.3关系和逻辑运算符关系运算符中的“关系”二字指的是一个值与另一个值之间的关系,逻辑运算符中的“逻辑”二字指的是连接关系的方式。因为关系和逻辑运算符常在一起使用,所以将它们放在一起讨论。关系和逻辑运算符概念中的关键是True(真)和Flase

      3、(假)。C语言中,非0为True,0为Flase。使用关系或逻辑运算符的表达式对Flase和Ture分别返回值0或1(见表2-6)。 表2-6给出于关系和逻辑运算符,下面用1和0给出逻辑真值表。关系和逻辑运算符的优先级比算术运算符低,即像表达式101+12的计算可以假定是对表达式10(1+12)的计算,当然,该表达式的结果为Flase。在一个表达式中允许运算的组合。例如:105&!(109)|3= 10);2.6.4位操作符与其它语言不同,C语言支持全部的位操作符(BitwiseOperators)。因为C语言的设计目的是取代汇编语言,所以它必须支持汇编语言所具有的运算能力。位操作是对字节或字中的位(bit)进行测试、置位或移位处理,这里字节或字是针对C标准中的char和int数据类型而言的。位操作不能用于float、double、longdouble、void或其它复杂类型。表2-7给出了位操作的操作符。位操作中的AND、OR和NOT(1的补码)的真值表与逻辑运算等价,唯一不同的是位操作是逐位进行运算的。 如表2-8所示,当且仅当一个操作数为True时,异或的输出为True,否则为F

      4、lase。位操作通常用于设备驱动程序,例如调制解调器程序、磁盘文件管理程序和打印机驱动程序。这是因为位操作可屏蔽掉某些位,如奇偶校验位(奇偶校验位用于确保字节中的其它位不会发生错误通常奇偶校验位是字节的最高位)。通常我们可把位操作AND作为关闭位的手段,这就是说两个操作数中任一为0的位,其结果中对应位置为0。例如,下面的函数通过调用函数read_modem(),从调制解调器端口读入一个字符,并将奇偶校验位置成0。 字节的位8是奇偶位,将该字节与一个位1到位7为1、位8为0的字节进行与操作,可将该字节的奇偶校验位置成0。表达式ch&127正是将ch中每一位同127数字的对应位进行与操作,结果ch的位8被置成了0。在下面的例子中,假定ch接收到字符A并且奇偶位已经被置位。 一般来说,位的AND、OR和XOR操作通过对操作数运算,直接对结果变量的每一位分别处理。正是因为这一原因(还有其它一些原因),位操作通常不像关系和逻辑运算符那样用在条件语句中,我们可以用例子说明这一点:假定X=7,那么x&8为Ture(1),而x&8却为Flase(0)。记住,关系和逻辑操作符结果不是0就是1。而相似的位

      5、操作通过相应处理,结果可为任意值。换言之,位操作可以有0或1以外的其它值,而逻辑运算符的计算结果总是0或1。移位操作符和右移位数左移语句是:variable左移位数当某位从一端移出时,另一端移入0(某些计算机是送1,详细内容请查阅相应C编译程序用户手册)。切记:移位不同于循环,从一端移出的位并不送回到另一端去,移去的位永远丢失了,同时在另一端补0。移位操作可对外部设备(如D/A转换器)的输入和状态信息进行译码,移位操作还可用于整数的快速乘除运算。如表2-9所示(假定移位时补0),左移一位等效于乘2,而右移一位等效于除以2。 每左移一位乘2,注意x9?100:200;例中,赋给y的数值是100,如果x被赋给比9小的值,y的值将为200,若用if-else语句改写,有下面的等价程序:x=10;if(x9)y=100;elsey=200;有关C语言中的其它条件语句将在第3章进行讨论。2.6.6 逗号操作符作为一个操作符,逗号把几个表达式串在一起。逗号操作符的左侧总是作为void(无值),这意味着其右边表达式的值变为以逗号分开的整个表达式的值。例如:x=(y=3,y+1);这行将3赋给y,然后

      6、将4赋给x,因为逗号操作符的优先级比赋值操作符优先级低,所以必须使用括号。实际上,逗号表示操作顺序。当它在赋值语句右边使用时,所赋的值是逗号分隔开的表中最后那个表达式的值。例如,y=10;x=(y=y-5,25/y);执行后,x的值是5,因为y的起始值是10,减去5之后结果再除以25,得到最终结果。在某种意义上可以认为,逗号操作符和标准英语的and是同义词。2.6.7关于优先级的小结表2-10列出了C语言所有操作符的优先级,其中包括将在本书后面讨论的某些操作符。注意,所有操作符(除一元操作符和?之外)都是左结合的。一元操作符(*,&和-)及操作符“?”则为右结合。 ?C语言运算符大全C语言共有34个运算符,今天闲来没事就找了一下,现在拿出来分享一下呵:按优先级排序,空行表示优先级下降,01为最高,最先算 1431均为双目,左结合 () 01圆括号 02下标 - 03指针型结构成员 . 04结构成员 ! 05逻辑非 06位非 + 07自增 - 08自减 - 09取负 (类型) 10类型转换 * 11取内容 & 12取地址 sizeof 13求字节 此级(513)均为单目运算,且都为右结合

      7、 * 14乘 / 15除 % 16求余 + 17加 - 18减 20右移 21小于 23大于 = 24大于等于 = 25等于 != 26不等于 & 27位与 28位异或 | 29位或 & 30与 | 31或 ?: 32条件运算 此级(32)为三目运算,右结合 = 33赋值运算 另有10个扩展符+=,-=,*=,/=,%=,=, .括号(函数等),数组,两种结构成员访问由左向右! + - + - * & (类型) sizeof否定,按位否定,增量,减量,正负号, 间接,取地址,类型转换,求大小由右向左* / %乘,除,取模由左向右+ -加,减由左向右左移,右移由左向右 = 小于,小于等于,大于等于,大于由左向右= !=等于,不等于由左向右&按位与由左向右按位异或由左向右|按位或由左向右&逻辑与由左向右|逻辑或由左向右? :条件由右向左= += -= *= /= &= = |= =各种赋值由右向左,逗号(顺序)由左向右上面给出的是其运算符,下面给出32个关键字及其含义:auto :声明自动变量 一般不使用 double :声明双精度变量或函数 int: 声明整型变量或函数 struct:声明结构体变量或函数 break:跳出当前循环 else :条件语句否定分支(与 if 连用) long :声明长整型变量或函数 switch :用于开关语句 case:开关语句分支 enum :声明枚举类型 register:声明积存器变量 typedef:用以给数据类型取别名(当然还有其他作用) char :声明字符型变量或函数 extern:声明变量是在其他文件正声明(

      《C语言运算符大全讲解》由会员206****923分享,可在线阅读,更多相关《C语言运算符大全讲解》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.