C语言运算符
1.算术运算符:用于数学计算,如+、-、*、/、%。 例子:
int a = 5, b = 3;
int c = a + b; // c的值为8
int d = a - b; // d的值为2
int e = a * b; // e的值为15
int f = a / b; // f的值为1
int g = a % b; // g的值为2
2.关系运算符:用于比较两个数的大小关系,返回布尔值,如>、<、>=、<=、==、!=。 例子:
有个看代码的习惯 就是从右向左看,这往往也符合运算符的优先级。布尔值就是True或者False,通常是0和非0值,可以在此了解一下。
int a = 5, b = 3;
bool c = a > b; // c的值为true
bool d = a < b; // d的值为false
bool e = a >= b; // e的值为true
bool f = a <= b; // f的值为false
bool g = a == b; // g的值为false
bool h = a != b; // h的值为true
以第二行的例子来说, a>b成立吗? 如果成立 将’True’赋值给c变量,否则将‘False’赋值给c变量
3.逻辑运算符:用于组合多个条件,返回布尔值,如&&(与)、||(或)、!(非)。 例子:
与:两者都成立
或:二者成立其一
非:取反,如果是真,就变成假,反之亦然。
int a = 5, b = 3, c = 7;
bool d = (a > b) && (b < c); // d的值为true
bool e = (a < b) || (b > c); // e的值为false
bool f = !(a < b); // f的值为true
4.位运算符:用于二进制位的操作,如&、|、^、~、<<、>>。 例子:
这一部分作为了解,实际上是很有用的,但是对初学者或许有点复杂,后面会出专门的文章来讲解这一部分。
int a = 5, b = 3;
int c = a & b; // c的值为1(0101 & 0011 = 0001)
int d = a | b; // d的值为7(0101 | 0011 = 0111)
int e = a ^ b; // e的值为6(0101 ^ 0011 = 0110)
int f = ~a; // f的值为-6(~0101 = 1010,再按位取反得到101,转换为十进制为-6)
int g = a << 1; // g的值为10(0101左移1位变为1010)
int h = b >> 1; // h的值为1(0011右移1位变为0001)
5.赋值运算符:用于给变量赋值,如=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=。 例子:
int a = 5, b = 3;
a += b; // 等价于a = a + b,此时a的值为8
a %= 3; // 等价于a = a % 3,此时a的值为2
b <<= 2; // 等价于b = b << 2,此时b的值为12(0011左移2位变为1100)