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-运算符的主要内容,如果未能解决你的问题,请参考以下文章

《你必须知道的495个C语言问题》读书笔记之第4-7章:指针

C语言学习笔记--指针和数组的关系

C++ Primer 0x04 学习笔记

C语言初阶笔记初识c语言

C++ Primer 0x04 学习笔记

C语言初阶笔记深入探索C语言操作符的奥秘(下)!!