C语言操作符是说明特定操作的符号,它是构造C语言表达式的工具。
分类及分析:
一、算术操作符
+ - * / %
以上操作符分别为加法,减法,乘法,除法,取模
关于算术操作符有几点需要注意:
1、 %操作符的两个操作数必须为整数,返回的是整除之后的余数。其他的几个操作符可以作用于整数和浮点数。
2、 / 操作符如果两个操作数都为整数,执行整数除法。而只要操作数中出现浮点数,都进行浮点数除法。
二、位移操作符
位移操作符的操作数必须是整数类型,整数类型在内存中以补码的形式存在,共32位。
左移操作符<<
左边直接丢弃,右边补0,左移一位有*2的效果
右移操作符>>
右移操作又分两种:
1、算术右移
右边丢弃,左边补原该值符号位
2、逻辑右移
右边丢弃,左边补0
注意:位移操作符不改变变量原来的值
三、位操作符
& 按位与(两个同时为1才为1)
| 按位或(有一个为1则为1)
^ 按位异或(相同为0,不同为1)
有几点需要注意:
1、任意数^它自身结果为0,任意数^0结果为它自身
四、赋值操作符
使用赋值操作符赋值 =
复合赋值符
+= -= *= /= %= >>= <<= &= |= ^=
五、单目操作符
注意:
1、单目操作符只有一个操作数。
2、sizeof是操作符,不是一个函数,它在源文件编译期间处理,sizeof内部的表达式不参与运算。
3、前置--/++先自加/减再使用,后置++/--先使用再自加/减。不同指针类型中的++/--操作加/减多少取决于指针指向的类型。
六、关系操作符
> >= < <= != ==
用来比较大小,注意==不要误写为=
七、逻辑操作符
&& 逻辑与(同真为真,否则为假)
|| 逻辑或(同假为假,否则为真)
八、条件操作符
exp1 ? exp2 : exp3
当表达式1的结果为真,整个表达式的结果是表达式2的结果
当表达式1的结果为假,整个表达式的结果是表达式3的结果
逗号表达式
exp1 , exp2 , exp3 ...... expN
用逗号隔开的多个表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
九、下标引用、函数调用和结构体成员访问操作符
[] 下标引用操作符,它有两个操作数(数组名和下标)
#include<stdio.h>
int main()
{
//查找数组中第五个元素的几种方法
int arr[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n", arr[4]);
printf("%d\n", *(arr+4));
printf("%d\n", *(4+arr));
printf("%d\n", 4[arr]);
return 0;
}
() 函数调用操作符,它的操作数取决于函数的参数
访问结构体成员操作符
.结构体.成员名
->结构体指针->成员名
.是相对于结构体变量而言 ->是相对于结构体指针而言