几大基本运算符
- 赋值运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
赋值运算符
- 单等号=
计算顺序:从左往右 - 例如:
double salary = 3200.0;
double total = salary *2;
char sex = ‘F’;
int score =98;
#include <stdio.h>
int main()
{
//复合运算符
int num = 8;
num %= 5;
printf("%d\n",num);
}
#include <stdio.h>
int main()
{
//复合运算符
int x = 5;
x += 10; //等价 x = x + 10;
printf ("%d\n", x);
x -= 10; //等价 x = x - 10;
printf ("%d\n", x);
x *= 10; //等价 x = x * 10;
printf ("%d\n", x);
x /= 10; //等价 x = x / 10;
printf ("%d\n", x);
x %= 10; //等价 x = x % 10;
printf ("%d\n", x);
return 0;
}
算术运算符
- ** 一元运算符:++、–**
#include <stdio.h>
int main()
{
int num = 10;
num++; //num= num + 1;
num = num + 5; // num += 5; 等价写法
printf ("%d\n ",num);
}
- 二元运算符:+、-、*、/、%
#include <stdio.h>
int main()
{
//定义两个整型变量
int num1 = 5, num2 =2;
//4个double型变量用来存放计算结果
double result1,result2,result3,result4;
result1 = num1 / num2; //除法
result2 = num1 % num2; //取模
result3 = num1++; //后置,num1先赋值给result3,后在进行自加1
result4 = --num2; //前置,num1先自减1,然后赋值给result4
printf ("num1 / num2 = %lf \n", result1);
printf ("num1 %% num2 = %lf \n",result2);
printf ("num1++ = %lf\n",result3);
printf ("--num2 = %lf\n",result4);
}
关系运算符
- 关系运算符:>、<、>=、<=、==、!=
#include <stdio.h>
int main()
{
printf("5 > 8吗? %d\n",5 > 8);
printf("6 < 9吗? %d\n",6 < 9); //C语言中,0表示假,1(非零)表示真
}
逻辑运算符
- &&(条件1 && 条件2):两个条件同时为真时,结果为真
- || 条件1 || 条件2):两个条件有一个为真时,结果为真
- !(!条件):条件为真时,结果为假;条件为假时,结果为真
位运算符
#include <stdio.h>
int main()
{
//算术运算符 + - * / %
//关系运算符 > < >= <= == !=
printf ("%d\n", 8 == 9);
printf("%d\n", 5 > 9 && 4 < 7) ;
//逻辑运算符 && || !
//赋值运算符 = += -= /= *=
int num = 10; // 10 > 11
int result = num++ > 11 && --num < 20; //短路运算, --num < 20是不会被执行的
//问题:result
printf("result = %d\t num= %d\n",result, num);
}
运算符的优先级
- ()、 sizeof 、++、 –
- !
- 算术运算符
- 关系运算符
- &&
- ||
- 赋值运算符
int main()
{
printf("%d\n", !((18+45%3*5)>16)); // !18>16,!取反,
}
- 记忆技巧
1、单目运算符包括 !、~、++、–、sizeof,优先级别高
2、优先级别最低的是赋值运算符
3、可以通过()控制表达式的运算顺序,()优先级最高
4、从右向左结合性的只有赋值运算符、三目运算符和单目运算符
5、算术运算符 >关系运算符>逻辑运算符
版权声明:本文为qq_38778137原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。