- 操作符
操作符
算术操作符
+ - * %
#includeint main() { int a = 5 % 2;//取模 printf("%dn", a); return 0; }
移位操作符
>> <<
#include#include int main() { //移(2进制)位操作符 //<< 左移 //>> 右移 int a = 1; //整型1占4个字节-32bit位 //00000000000000000000000000000001 int b = a << 2; printf("%dn", b); printf("%dn", a); return 0; }
结果如下:
4 1
注:左移之后a仍然是1,没有改变
位操作符
& ^ |
#include#include int main() { //(2进制)位操作 //& 按位与 //| 按位或 //^ 按位异或 int a = 3; int b = 5; int c = a & b; int d = 3; int e = 5; int f = d | e; int g = 3; int h = 5; int j = g ^ h;//不是次方-是异或 //异或的计算规律 //对应的二进制位相同,则为0 //对应的二进制位相异,则为1 //011 //101 printf("%dn", c); printf("%dn", f); printf("%dn", j); return 0; }
结果如下:
1//001 7//111 6//110
赋值操作符
= += -= /= &= ^= |= >>= <<=
#include#include int main() { int a = 10; a = 20;// = 赋值 == 判断相等 a = a + 10; a += 10; a = a - 20; a -= 20; a = a & 20; a &= 20; // 复合赋值符 // += -= *= /= %= >>= <<= &= |= ^= return 0; }
单目操作符
! //逻辑反操作 - //负值 + //正值 & //取地址 sizeof //操作数的类型长度(以字节为单位) ~ //对一个数的二进制按位取反 -- //前置,后置-- ++ //前置,后置++ * //间接访问操作符 (类型) //强制类型转换
#include#include //单目操作符 //双目操作符 //三目操作符 int main() { int a = 10; int b = 20; int c = 0; c = a + b;//+ 双目操作符 printf("%dn", c); //c语言中我们表示真假 //0代表假 //1代表真 int d = 10; printf("%dn", d); printf("%dn", !d); return 0; }
结果如下:
30 10 0
#include#include int main() { int arr[10] = { 0 };//10个整型元素的数组 int sz = 0; //10*sizeof(int) = 40 printf("%dn", sizeof(arr)); //计算数组的元素个数 //个数 = 数组总大小/每个元素的大小 sz = sizeof(arr) / sizeof(arr[0]); printf("sz = %dn", sz); int a = 10; //sizeof 计算的是变量/类型所占空间的大小,单位是字节 printf("%dn", sizeof(a)); printf("%dn", sizeof(int)); printf("%dn", sizeof a); return 0; }
结果如下:
40 sz = 10 4 4 4
注:仔细观察备注//后边的注释,自己可以复制程序运行一下,将会有更深的理解。



