C语言操作符学习总结

c语言中关于操作符部分的学习,可以主要分为两个部分:操作符和表达式。

这里首先是列举各种操作符,在C语言中,一般主要的操作符有这么几种:算数操作符,移位操作符,位操作符,赋值操作符,单目运算符,关系操作符,逻辑操作符,条件操作符,逗号表达式以及比较特殊的几个操作符。

算数操作符

算数操作符,主要是:+ , -,  *,  /, %

这些都是比较常见的,不光是在C语言中学习到,事实上从小我们学习数学都常用到他们,所以这里没什么多说的,就是有几点注意事项:

  1. 除了取模运算,也就是取余数的%操作符,其他的几个操作符都是可以用于整数运算和浮点数运算的;
  2. %取模运算在这里特殊的在于,符号两边的操作数都必须是整数;
  3. /操作符,还是与数学上一样,注意第二个操作数不是0就行,这里如果两个操作数都是整数,就按整数除法运算;而只要其中不管哪个操作数为浮点数,就按照浮点数除法运算。

移位操作符

移位操作符,分别是左移操作符 << 和右移操作符 >> ,(PS:移位操作,是特别针对二进制序列进行的操作)

左移操作的 移位规则:

  将所有有效位整体向左移动,具体移动多少位是自己决定的,并抛弃左边最高位,并在右边空出来的位置补0

右移操作的 移位规则:

  则是抛弃将所有有效位整体向右移动,并且挤掉最低有效位,并在空出来的最高位补0

至于有符号数的符号位是否影响移位运算,这里不细说。后面再详细讨论。

位操作符

位操作符有:&,|, ^,作用分别是:

所谓按位与,就是同一位上相同取1,相异为0;而按位或,是有一个1就是取1,两个都是0,则取0;而按位与或,则是同一位相异取1,相同取0

赋值操作符

  =   是用来进行赋值的

这里要注意这个等号在C语言里不是等号的意思,它是给变量写入一个值。而等于在C语言里,我们是用==来定义的。而事实上,将=与==混用,是我们学习编程初期,比较常犯的一个错误。然而,有时候,你在程序里把他们混用了,编译时,却没有报错,但在程序运行时却会发生不可预知的错误。

相应的对赋值操作,为了简化代码,将赋值与其他操作进行结合,就有了复合赋值符的概念:+=,-=, *=, /=, %= , <<=, >>=,&=,|=,^=。

都是将符合赋值的左右操作符进行相应的操作,并将结果覆盖性的重新赋给左操作数。

单目运算符

这里就是要注意,将取地址操作与按位与进行区分。区分的办法也不难,就是取地址,它是对一个变量进行取地址,所以只是操作符右边有操作数;而与运算,是两个操作数之间的,所以,与操作符两边都会有操作数。

并且,要注意前置++,前置--,是先进行运算再使用数据;而后置++,后置--,则是先使用数据,在进行运算。

关系操作符

所谓关系操作,就是进行判定,两个操作数,或两个表达式的结果,或者操作数与表达式之间的关系。没有什么多说的,只要注意,向上面一样,区分=与==的区别就行。

逻辑操作符

逻辑与,逻辑或的部分,需要区分他们与按位与,按位或的差别。以及他们自己的特点:逻辑操作表达式中的短路现象这么一个,比较特别的情况。

逗号表达式

exp1,exp2,exp3,...expN

逗号表达式这里,是把多个表达式放在一起,使用逗号进行分隔。逗号表达式从左向右依次序执行,但整个表达式的结果一般是最后一个表达式影响的,是最后一个表达式的结果

条件操作符

条件操作符的一个典型应用就是三目运算符,比如我们进行比较大小的:

return (1>2)?1:0

特殊的几个操作符

另外还可以列举的几个特殊的操作符有:

1.下标引用操作符[ ]

  下标引用操作符一般是用于数组元素的访问:array[index],这个array就是数组名,而这个索引值index就是指的数组元素的位置,而数组元素的存储的位置,从0到n-1。

2.函数调用操作符()

  对于函数调用操作符,()里面的一般是传递给函数的参数,当然函数里可以不对数据进行操作,那么这时就可以不往里面传参数了

3.访问结构体成员的. 和访问结构体指针的->

  对于结构体这块,有:结构体变量.成员名      结构体指针->成员名

其实对结构体指针,也可以用*(结构体指针).成员名,但是这样一般会引起歧义,因而使用了指向操作符->来代替。

原文地址:https://www.cnblogs.com/sunjiyuan/p/10097906.html

时间: 2024-10-07 16:58:43

C语言操作符学习总结的相关文章

初探swift语言的学习笔记(可选类型?和隐式可选类型!)

可选类型.隐式可选类型 其次swift还引入一个较有趣的初始值设置语法使用"?"操作符及"!"号操作符 如:"var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = op

关于C语言操作符的总结

整理了一些C语言中的操作符,简单介绍了一下部分重要操作符,也算学习操作符的一些收获吧. 一.C语言操作符分类算数操作符.移位操作符.位操作符.赋值操作符.单目操作符.关系操作符.逻辑操作符.条件操作符二.操作符介绍1.算数操作符:+ - / %a.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数b.对于/操作符,如果两个数都为整数,执行整数除法.而只要有浮点数执行的就是浮点数除法c.%操作符的两个操作数必须为整数,返回的是整除之的余数2.移位操作符 <<左移 >>右移a.左

C语言课程学习的总结

本学期c语言的学习接近尾声,对此颇有感触,感受良多,随着考试的结束,c语言学习也告了一段落. c语言是一门计算机语言,用最原始的方法输入计算机,向我们展示它的神奇.它可以让我们更好的了解计算机,与计算机交流. 同时也是我们往后学习的基础,是重中之重.所以,c语言的学习对我们是很重要的. 在本学期的c语言学习中,遇到了不少的困难,但有些还是可以解决的.对于c语言的学习,虽然不是很会,但是也有自己的看法. 首先,在c语言的学习中,上课前自己要懂得去预习,尤其是一些知识点的概念和用法,还有教材的经典例

SQL Server 之T-SQL语言的学习

SQL Server 之T-SQL语言的学习 举例: 表1:学生表student 学号 姓名 性别 班级 2007001 李晓明 男 土木0701 2007002 王莉 女 信计0701 表2:成绩表score 学号 课程编号 课程名称 成绩 2007001 1949 高等数学 85 2007001 1823 C语言 98 2007002 1950 数据结构 60 1.数据定义语言 数据库语言属于第四类语言,与其他语言不同之处是: 不区分大小写 字符串全部用单引号 不区分字符和字符串 语句之间不

UNIX/Linux下C语言的学习路线

一.工具篇 “公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具. 1.操作系统    在UNIX或Linux系统中学习C很方便,所以在开始您的学习旅程前请先选择一个UNIX或Linux操作系统,目前可供个人免费使用的UNIX或Linux系统有FreeBSD.RedHat Linux.SUSE Linux等,而且在安装包中还提供很多实用的工具,如:gcc, make等. 如果您一直使用Window

初探swift语言的学习笔记十一(performSelector)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/35842441 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 在OC中使用好好的performSelector,但不知为什么在swift有意的被拿掉了.更有甚者连IMP, objc_msgSend也不能用了.虽然想不通为什么,但应该有他的道理.就不纠结了. 大家可能在OC中使用得更多的就是延时处理,及后台处

初探swift语言的学习笔记十(block)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/35783341 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 在前面一些学习中,原本把闭包给理解成了block尽管有很多相似之处,但block还是有他自己的独特之外.近日,在写oc/swift混合编码时,有时候需要swift回调oc,oc回调swift . 因此我把swift中的 block 常见的声明和写

c语言操作符优先级

运算符 结合性 () [] -> . 自左至右 ! ~ ++ -- - (type) * & sizeof 自右至左 * / % 自左至右 + - 自左至右 << >> 自左至右 < <= > >= 自左至右 == != 自左至右 & 自左至右 ^ 自左至右 | 自左至右 && 自左至右 ||  自左至右 ?: 自右至左 = 自右至左 , 自左至右 1.优先级最高的并不是真正意义上的运算符,包括数组下标,函数调用操作符和

c语言指针学习

前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水,食品,你能告诉还有没有问题的吗?不知大难至,世人依旧忙.祸福相依,危中有机.那些高级生命,出于慈悲,会救渡我们,但是你要去思考,去发现机缘. 最近较闲,没事就学点基础知识,整天在上层晃,感觉晕的厉害,接地气.关于指针我上学的时候学过一点,我的老师说"指针很难呢",当时以为这老师挺谦虚的.后