今天复习一下C语言的运算符
1、赋值运算符
单等号 =
顺序是:从右往左
2、复合运算符
#include <stdio.h> #include <stdlib.h> int main() { int num = 10; num %= 4; printf("%d ",num); return 0; }
输出结果是:2
3、算术运算符
int num1 = 5, num2 = 2; double result1, result2, result3, result4; result1 = num1 / num2; result2 = num1 % num2; result3 = num1++; result4 = --num2; printf("num1 / num2 = %lf ", result1); printf("num1 %% num2 = %lf ", result2); printf("num1++ = %lf ", result3); printf("--num2 = %lf ", result4);
输出结果是:
num1 / num2 = 2.000000
num1 % num2 = 1.000000
num1++ = 5.000000
--num2 = 1.000000
其中,针对第3、第4条赋值语句,要注意以下情况:
int num = 5; int result = num++; printf("result = %d ", result);
输出结果是:result = 5
因为int result = num ++这个语句,++在语句的最后,相当于先执行int result = num,然后再执行num++,而上一段代码中,--在num2的前面,所以先执行num2 - 1,再执行result4 = num2语句
4、关系运算符
< > >= <= == !=
printf("5 > 8吗?%d ", 5 > 8); printf("6 < 9吗?%d ", 6 < 9);
输出结果:
5 > 8吗?0
6 < 9吗?1
0表示假,1表示真
5、逻辑运算符
5、位运算符
5、sizeof运算符
测量数据类型所占空间
printf("整型所占空间是%d字节 ",sizeof(1988));
输出:
整型所占空间是4字节
double所占空间是8字节
float所占空间是4字节
6、运算符优先级
()sizeof ++ -- > ! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
int num = 10; int result = ++num > 9 && --num < 20; printf("result=%d num=%d ",result, num);
输出:result=1 num=10
先算num+1,11>9为真;再算num-1,10<20,为真;最后算1&&1,等于1
printf("%d ",!((18+45%3*5)>16));
输出:0