C语言中的 运算符 详解
一、运算符
1、算数运算符
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main(void)
{
int a = 10;
int b = 50;
printf("a = %d\n", a++); // 先取值给%d, 在自增
printf("----a = %d", a);
printf("b = %d\n", ++b); // 先自增,再取值。
printf("----b = %d\n", b);
system("pause");
return EXIT_SUCCESS;
}
2、赋值运算符
3、比较运算符
4、逻辑运算符
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main(void)
{
int a = 34;
int b = 0;
char str[10] = "hello";
++str[0];
printf("a = %d\n", !a);
printf("b = %d\n", !b);
printf("======%d\n", a && !b);
printf("------%d\n", !a || b);
return EXIT_SUCCESS;
}
二、运算符优先级
注:
三目运算符: ? :
表达式1 ? 表达式2 : 表达式3
表达式1 是一个判别表达式。 如果为真。整个三目运算,取值表达式2。
如果为假。整个三目运算,取值表达式3。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
// 三目运算
int main(void)
{
int a = 40;
int b = 4;
int m = a < b ? 69 : a < b ? 3 : 5; // 嵌套的 三目运算
printf("m = %d\n", m);
printf("%d\n", a > b ? 69 : 100);
return EXIT_SUCCESS;
}
运算符优先级总结:
()[] > ++ –(后缀高于前缀) (强转) sizeof > 算数运算(先乘除取余,后加减)> 比较运算 > 逻辑运算 > 三目运算(条件运算)> 赋值运算 > 逗号运算