C语言学习笔记4-运算符
Posted TIME0101
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言学习笔记4-运算符相关的知识,希望对你有一定的参考价值。
C语言提供了13种运算符
1,算术运算符
2,关系运算符
关系运算符的优先级低于算数优先级
少用括号,括号太多增加代码阅读难度
注:若if(4<i<10)
则计算机会先判断4是否小于i,若4小于i则4<i部分变为1再与10相比,反之为0后同理。
非数学上理解i是否在其之间。所以需要用逻辑运算符
3,逻辑运算符
!(逻辑非)优先级高于算术运算符,&&(逻辑与)和||(逻辑或)优先级低于关系运算符。
短路操作:代替if
4,位运算符
左移,右移,按位取反,按位或,按位异或,按位与
移位的效率高于乘除法。
(1)左移:高位丢弃,低位补0,相当于乘2.。
申请内存会用到:申请1G:malloc(1<<30)
(2)右移:
对于偶数来说是除2,对于奇数是先减1再除2.
低位丢弃,正数高位补0,负数高位补1.
无符号数当做正数。
(3)按位与,按位或,按位取反
对应位置进行与,或,取反
取反:任意正数的取反为其负数减1
若要得到一个数的最小位为1的数。可和他的相反数按位与最后得到的数就是了。
(4)异或(相同为0,相异为1)
任何数和自身异或得0
任何数和0异或得自身
满足交换律
a、两个数有两个不同空间可用异或交换互相的值:
i=i^j
j=i^j
i=i^j
b、101个数,50个出现两次,1个出现一次找出出现一次的数
举例5个数
c、102个数,50个出现两次,2个出现一次找出出现一次的数
分堆,为1的最小位
d、103个数,50个出现两次,3个出现一次找出出现一次的数
5,赋值运算符
左操作符=右操作符
6,条件运算符与逗号运算符
条件运算符是C语言唯一的三目运算符,代表有三个操作数。
max=a>b?a:b //max等于a和b较大的值
逗号运算符:(优先级最小)(逗号表达式的整体的值是逗号后面的值)
a=b,c //a等于b
a=(b,c) //a等于c
for(i=1, j=2, k=3;i<100;i++,j++)
7,自增自减运算符及字节运算符
j=++i //i先++在赋值给j
j=i++>1 //后++,等价于j=i>1-1;i++,最先的是判断i与1的大小
函数传递参数禁止使用自增自减
sizeof() 是一个判断数据类型或者表达式长度的运算符。
课外知识:百兆光纤指的是100M的bit
以上是关于C语言学习笔记4-运算符的主要内容,如果未能解决你的问题,请参考以下文章