一文带你吃透操作符,你还不了解操作符吗?(C语言深入解剖篇) 操作符 指令系统的每一条指令都有一个操作符,它表示该指令应进行什么性质的操作。不同的指令用操作符这个字段的不同编码来表示,每一种编码代表一种指令。 其中操作符分为:算术操作符2.移位操作符3.位操作符4.赋值操作符5.单目操作符6.关系操作符7.逻辑操作符8.条件操作符9.逗号表达式10.下标引用、函数调用和结构成员 算术操作符 注意:1.✏️除了% 操作符之外,其他的几个操作符可以作用于整数和浮点数。
2.✏️对于/ 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3.✏️% 操作符的两个操作数必须为整数。返回的是整除之后的余数。
移位操作符 移位操作符针对的是二进制,所以移动的是二进制,每次运算时,第一步需要转换成对应的二进制,再进行移位。 ✨左移操作符 移位规则:左边抛弃、右边补0
当num=-2时:
左移一位相当于该数字乘于2, ✨右移操作符 右移操作符相对复杂一点。分为逻辑移位和算术移位。在转换成二进制时,二进制的第一个数字表示正负,即当第一个数字为0时,该数字为正,为1时,该数字为负例如:
✏️小知识:整数的二进制表示有三种方式:原码,反码,补码。 正整数的原码,反码和补码相同。 负整数的原码,反码和补码不相同。 其中在存储时候,存储的是补码。
逻辑移位 移位规则:左边用0填充,右边丢弃
算术移位 移位规则:左边用原该值的符号位填充,右边丢弃
小沐用的编译器支持的是算术右移。 警告⚠ : 对于移位运算符,不要移动负数位,这个是标准未定义的。(浮点数也不行) 例如: 右移一位相当于除与2。 位操作符 位操作符是二进制的运算,故与移位操作符一样,运算的第一步应讲操作数转换成二进制。位操作符只适用于整型。位操作符有: 注:他们的操作数必须是整数。 &–按位与 运算规则:有零则为零,同为一才为一。✏️0&0=0 1&0=0 1&1=0 0&1=0 例如:
|–按位或 运算规则:有1则为1,同为零才为零。✏️1|1=1 1|0=1 0|0=1 0|1=1 例如:
^–按位异或 运算规则:相同为0,不相同为1。✏️1^0=1 0^1=1 0^0=0 1^1=0 例如:
练习:不能创建临时变量(第三个变量),实现两个数的交换。
代码一容易溢出,当a和b都很大时,容易导致a=a+b溢出。 故:
通过: 则按位异或支持交换律。
赋值操作符 在写代码时候可以通过赋值操作符给变量赋值,从而得到想要的结果。 ✨复合赋值操作符 复合赋值操作符的运算规则和前面的类似。 这些运算符都可以写成复合的效果。 单目操作符 单目操作符只有一个操作数。 ✨单目操作符介绍
✨sizeof 和 数组 初学C语言时,经常用到sizeof来求数组的大小和素个数等。需要区别strlen和sizeof。sizeof是一个单目操作符,不是一个函数。strlen是一个库函数,头文件为string.h,是用来求字符串的长度。例如:
注意:1.指针变量不管所指的变量是什么类型,其大小都是4或者8个字节。✏️当配置是x86时,大小为4个字节;配置为x64时,大小为8个字节。2.数组作为参数传参时候,传的是数组的首素的地址。 小知识:.
strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。 strlen是用来求字符串的长度。 strlen遇到’\0’则停止并返回,只会计算‘\0’之前的素个数。sizeof可以求变量(类型)所占空间的大小。 关系操作符 这些关系运算符比较简单,但是我们要注意一些运算符使用时候的陷阱。 例如:在编程的过程中把==写成=,导致错误
逻辑操作符 逻辑操作符只真假,真则返回1,假则返回0。 区分 逻辑与(&&) 和 按位与(&) 区分 逻辑或(||) 和 按位或(|)
&&–左边为假,即为假,则右边就不用计算了。||–左边为真,即为真,则右边就不用计算了。 条件操作符 条件操作符也叫三目操作符
逗号表达式 逗号表达式,就是用逗号隔开的多个表达式。 逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。 下标引用、函数调用和结构成员 ✨[ ] 下标引用操作符 操作数:一个数组名 + 一个索引值
✨( ) 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
✨访问一个结构的成员
写在最后 那么今天的学习就到这里了。友友们觉得不错的可以给个,点赞或者收藏哦! 感谢各位友友们的支持。以下的代码希望各位大佬们自行检验哦,毕竟亲手操作让记忆更加深刻。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/18378.html