目录
一、算术操作符
二、赋值操作符
三、单目操作符
四、关系操作符
五、逻辑操作符
六、条件操作符
七、逗号表达式
八、下标引用和函数调用
九、移(二进制)位操作符
十、(二进制)位操作符
前言
这是整理的一些基础c语言相关的操作符
希望能帮助到大家
操作平台:VS2019 、 画图
+ - * / %(取模)
都是我们常见的操作符,但需要注意:
1.计算类型 - 只有有浮点型数据参与运算的时候得出的结果才会是浮点型
2.取模操作符(%) - 两个数据必须都是整型才能计算
= 可以给定义的变量赋值
复合赋值符
+= -= *= /= %= ( &= |= ^= >>= <<= ) -> 位操作符后面讲
复合赋值符的效果如出一辙 , 这里拿+=举例
a += 3 即可表示为 a = a +3;
可以理解为把变量a加上3
当然,从下图可以看出结果是一样的:
---------------------------------------------------------------------------------------------------------------------------------
+ - 表示数值的正负,无需多说
---------------------------------------------------------------------------------------------------------------------------------
-- 前置、后置--
++ 前置、后置++
前置->先++/--后使用
后置->先使用后++/--
++/--的值默认为1 (记忆技巧:从左往右顺着看,先看到什么就做什么操作)
观察结果可知,++操作符位置不同,运算不同,结果也不同
---------------------------------------------------------------------------------------------------------------------------------
sizeof 操作数的类型长度(以字节为单位)
在c语言中,不同类型变量占据不同空间大小
而我们恰可以用操作符sizeof来观察不同变量的大小
如sizeof(int)的返回值就是int变量的大小,又可以用printf打印
可以得到:
--------------------------------------------------------------------------------------------------------------------------------
> >= < <= 基本判断,无需多说
这里重点讲 != 和 ==
!= 用于测试“不相等”
== 用于测试“相等”
(注意,在c语言逻辑判断中,非0表示符合条件判断(真),0表示不符合条件判断(假))
比如
当我们写出 (1 == 2) 显然1不等于2,则判断为假,返回一个0
由上图可知,a==3不成立,不会执行该if下的语句
&& 逻辑与(表达式1)&&(表达式2)
|| 逻辑或(表达式1)||(表达式2)
在&&中,表达式1和表达式2必须同时成立才为真
在||中,表达式1和表达式2只要有一个成立就为真
如下图所示
exp1 ? exp2 : exp3 - (表达式1)?(表达式2):(表达式3)
首先判断 表达式1
如果成立, 则执行表达式2;
如果不成立,则执行表达式3;
逻辑图:
实际图:
另:如果只是简单的if语句,可以用该操作符套用,更加简洁美观。
但不建议嵌套使用(太杂乱)
exp1, exp2, exp3, …expN (表达式1),(表达式2),(表达式3),.....(表达式n)....
逗号表达式,就是用逗号隔开的多个表达式。
从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
分析:
*整个表达式的结果是最后一个表达式的结果。
[ ] 下标引用操作符 - 操作数:一个数组名 + 一个索引值
int arr[10];//创建数组
arr[9] = 10;//下标引用操作符。
如上,arr是数组名+9是索引值(数组下标)
---------------------------------------------------------------------------------------------------------------------------------
( ) 函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
#include
void text()
{
printf("测试1");
}
int main()
{
text();//调用text函数
return 0;
}
即:函数名+() 就是调用这个函数
**************************************************************************************************************
接下来的内容涉及一些内存
******************************* **********************************
首先补充一点
数据在内存中以二进制形式存储(这里拿int举例)
int a = 10; 在内存中为
<< 左移操作符 (操作数只能是整数)
将所有二进制位向左移动
下面先看例子:
分析:
---------------------------------------------------------------------------------------------------------------------------------
>> 右移操作符
首先右移运算分两种:
1. 逻辑移位 左边用0补,右边丢弃
2. 算术移位 左边用原该值的符号位补,右边丢弃
int a = -1;
内存中为
*注:不要移动负数位(c语言标准未定义)
& 按位与
| 按位或
^ 按位异或
*注:他们的操作数必须是整数。
int a = 10;
int b = 20;
a & b;
a | b;
a ^ b;
分析:
& - 对应比较,都有1则变为1,有0则0
---------------------------------------------------------------------------------------------------------------------------------
| - 对应比较,有1则1
---------------------------------------------------------------------------------------------------------------------------------
^ - 对应比较 相同为0,相异为1
**************************************************************************************************************
C语言操作符基础就到此,因为作者水平有限,欢迎提出意见或建议