C运算符 对比a++、++a、b--、 --b
#include<stdio.h>
int main()
{
int a = 21;
int b = 10;
int c, d;
c = a++;//先赋值给c,a本身再运算 c = 21, a = 22;
//c = ++a;//a本身先运算,再赋值给c a = 22,c = 22;
printf("c = %d, a = %d\n",c, a);
d = --b;//b本身先运算,再赋值给d b = 9,d = 9;
//d = b--;//先赋值给d,b本身再运算 d = 10, b = 9;
printf("d = %d, b = %d\n",d, b);
return 0;
}
参考网址:https://www.runoob.com/cprogramming/c-operators.html
逻辑运算符:与 或 非 && || !
位运算符:对每一位执行逻辑与& 或 | 异或 ^ 取反~ 左移<< 右移>>
#include <stdio.h>
int main()
{
unsigned int a = 60; /* 60 = 0011 1100 */
unsigned int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
printf("Line 1 - c 的值是 %d\n", c );
c = a | b; /* 61 = 0011 1101 */
printf("Line 2 - c 的值是 %d\n", c );
c = a ^ b; /* 49 = 0011 0001 */
printf("Line 3 - c 的值是 %d\n", c );
c = ~a; /*-61 = 1100 0011 */
printf("Line 4 - c 的值是 %d\n", c );
c = a << 2; /* 240 = 1111 0000 */
printf("Line 5 - c 的值是 %d\n", c );
c = a >> 2; /* 15 = 0000 1111 */
printf("Line 6 - c 的值是 %d\n", c );
}
按位与且赋值运算符&=,按位异或且赋值运算符^=,按位或且赋值运算符|=