运算符优先级
- 圆括号“()”、下标运算符“[]”、分量运算符的指向结构体成员运算符“->”、结构体成员运算符“.”
- 逻辑非运算符“!”、按位取反运算符“~”、自增自减运算符“++ --”、负号运算符“-”、类型转换运算符“(类型)”、指针运算符和取地址运算符“和&”、长度运算符“sizeof”
- 乘法运算符“*”、除法运算符“/”、取余运算符“%”
- 加法运算符“+”、减法运算符“-”
- 左移动运算符“<<”、右移动运算符“>>”
- 关系运算符“< > <= >= ”
- 等于运算符“==”、不等于运算符“!=”
- 按位与运算符“&”
- 按位异或运算符“^”
- 按位或运算符“|”
- 逻辑与运算符“&&”
- 逻辑或运算符“||”
- 条件运算符“? :”
- 赋值运算符“= += -= *= /= %= >>= <<= &= |= ^=”
- 逗号运算符“,”
表达式计算
其中(单独使用没有关系,表达式中使用需要注意):
- x = a++; //后缀:使用 a 的值之后,递增a
- y =++b; //前缀:使用 b 的值之前,递增b
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b, x, y;
a = 1;
b = 1;
x = a++;
y = ++a;
printf("a x b y\n");
printf("%d %5d %5d %5d", a, x, b, y);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 5;
printf("%d\n", ++n);
printf("%d\n", n++);
printf("%d\n", n--);
printf("%d\n", n);
return 0;
}