一,算数操作符
首先了解一下算术标识符都有哪些:+、-、*、/、%。
+:分别用于整数和浮点数的加法。
-: 分别用于整数和浮点数的减法
*: 分别用于整数和浮点数的乘法
/: 分别用于整数和浮点数的除法
%:用于两个整数之间相除取余数
注意:
1.除了%操作符之外,其他的几个操作符都可以用于整数和浮点数。
2.对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3.%操作符的两个操作数必须为整数。返回的是整除之后的余数。
二,移位操作符
1、算术右移;
2、逻辑移位。
算术右移情况指的是:二进制数有正负之分,补位时要注意符号位;
逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可。
#include<stdio.h>
#include<windows.h>
int main()
{
int m=10;
printf("%d\n",m>>1);
printf("%d\n",m<<1);
system("pause");
return 0;
}
其结果为:5 20
上述代码可以得出:>>(右移)相当于/2;
<<(左移)相当于*2;
三,位操作符。
位操作符包括:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)。
& 按位与(如果两个数字都为1,结果为1,否则位0)
| 按位或(如果两个数字都为0,结果为0,否则为1)
^ 按位异或(如果两个数字相同,结果为0,否则为1)
~按位取反(针对这个数字,0变为1,1变为0)
四,赋值操作符
符号:= += -= *= /= %= >>= <<= &= |= ^=
符号说明:
= 为简单赋值操作
+= -= *= /= %= >>= <<= &= |= ^= 为复合赋值操作
五,单目操作符
单目操作符有:!(逻辑反操作、非)、&(取地址符)、sizeof(求长度)、~(按位取反)、++、–、*、(类型)等。
需要注意的是:
1、&是取地址符,%p打印地址。
2、sizeof()是操作符,不是函数!
3、++的前置和后置。举例说明:
#include<stdio.h>
#include<windows.h>
int main()
{
int a=10;
int d=10;
int b=0,c=0;
b=a++;
c=++d;
printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);
system("pause");
return 0;
}
输出结果是:a=11,b=10,c=11, d=11
因此,前置++,是先加再赋值,后置++是先赋值再加。
六,关系操作符。
关系操作符主要是:==、>=、<=。
主要出现在条件的比较判断上,如:if语句、for循环等。(没啥可说的)
七,逻辑操作符
符号: && ||
符号说明:
&& 为逻辑与操作(只要有一个表达式为假便为假,不再执行后面的表达式)
|| 为逻辑或操作(只要有一个表达式为真便为真,不再执行后面的表达式)
八,条件操作符
符号:exp1 ? exp2 : exp3
符号说明:
exp1 ? exp2 : exp3 为目表达式,若表达式1(exp1)为真则返回表达式2(exp2),否则返回表达式3(exp3)
九,逗号表达式
符号:exp1, exp2, exp3, …, expN
符号说明:
exp1, exp2, exp3, …, expN 为逗号表达式(用逗号隔开的表达式),从左往右依次执行。整个表达式的结果为最后一个表达式的结果。
十,下标引用、函数调用和结构成员
下标引用
符号:[ ]
符号说明:
[ ] 为下标引用操作符,有两个操作数(数组名和索引值)
函数调用
符号:()
符号说明:
() 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,生育的操作数就是传递给函数的参数
结构成员
符号: . ->
符号说明:
. 为结构体对象.成员名
-> 为结构体指针->成员名