算数运算符 + - * / %
- + * 和数学中是基本一样的 / 除法就出现的了区别 int a = 10 / 3;//两个整数相除 结果就是整数 如果是10/3.0 那么结果就是浮点数 变量的类型也要注意换成浮点型哦 以及%f printf("%d",a); 结果:3 %取模 取余 *** 作符 就是在除法之后 最后整除不尽的值取出来 例如: int a = 10%3; printf("%d",a); 结果:1
位移 *** 作符 >> <<
位移实际是移动的二进制的位置 int main() { int a = 2; a = a << 2; printf("%d",a); } 结果: 8 过程: 2 转换成二进制就是 10 向左边<<移动2位 后面没东西就用0补上 就是 1000 1000转换成十进制 就是8
位 *** 作符 | & ^
| 位或 *** 作符 也是二进制的对比 进行的或运算 10|3 实际是下面这种对比 两个都为0的时候才为0 1010 0011 ------ 1011 也就是11 & 位与 *** 作符 也是二进制的对比 进行与的运算 10&3 实际是下面这种对比 两个都为1的时候才为1 1010 0011 ------ 0010 也就是2 ^ 异或 两个一样就为0 不一样就为1 10^3 ---- 1010 0011 ------ 1001 结果 9
赋值 *** 作符
= += -= *= /= %= ^= |= >>= <<= =是赋值操作符 就是把右边的值 赋给左边的变量 += 就是左边的值加上右边的值 然后赋值给左边例如 int a = 10; a += 12; 就相当于 a = a +12; 后面的-+ *=…都是一个意思
单目 *** 作符
! //逻辑取反 - //负号 + //正号 & //取地址符 可以取内存地址 sizeof //注意 sizefo是 *** 作符 在使用的时候可以不加括号 ~ 一个数的二进制位取反 -- //减减 ++ //加加 前++ 后++之前有说过 --也是一样的 * 间接访问 *** 作符 (解引用) 通过一个指针访问它所指向的地址这个过程叫做间接访问(indirection)或者解引用指针(dereferencing the pointer)。
~ 位取反需要单独拉出来讲一下 原码 反码 补码参考:
https://blog.csdn.net/weixin_44537835/article/details/121177713
逻辑 *** 作符
&& 逻辑与 || 逻辑或 && 就是左右两边的表达式 都为true才为true || 就是左右两边只要有一边是true 就为true if(2>1 && 1<3){ printf("v");//这个就是可以正确输出的 因为两个都为True } if(2>1 || 1>3){ printf("v");//这个就是可以正确输出的 只要有一个是True就足够了 }
三目 *** 作符
exp?exp1:exp2; 如果exp成立为True 那么就执行exp1 否则就执行exp2 1 > 1 ? printf("1"):printf("0"); 结果 0
逗号表达式
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)