C语言操作符总结

    xiaoxiao2022-07-07  159

    算数操作符

    + - * / %

    注意 / 操作符在有浮点数时的计算结果

    int main() { float f1 = 7 / 2; float f2 = (float)7 / 2; float f3 = 7 / (float)2; float f4 = (float)(7 / 2); printf("%f\n", f1); printf("%f\n", f2); printf("%f\n", f3); printf("%f\n", f4); system("pause"); return 0; }

    输出结果如下: 注意 % 操作符的两个操作数必须为整数

    int main() { int a = -1; //printf("%d\n", a); printf("%d\n", -10 % 3); printf("%d\n", 10 % -3); printf("%d\n", -10 % -3); printf("%d\n", 10 % 3); system("pause"); return 0; }

    输出结果如下:

    移位操作符

    << 左移操作符 >> 右移操作符

    左移操作符——左边抛弃、右边补0 右移操作符

    逻辑移位 左边用0填充,右边丢弃算术移位 左边用原该值的符号位填充,右边丢弃

    位操作符

    & 按位与 | 按位或 ^ 按位异或 ——相同取0,相异取1

    位操作符应用——求一个整数存储在内存中的二进制中1的个数

    #include <stdio.h> int main() { int num = -1; int i = 0; int count = 0;//计数 while(num) { count++; num = num&(num-1); } printf("二进制中1的个数 = %d\n",count); return 0; }

    num = num&(num-1); 用来求二进制位有几个1

    赋值操作符

    =

    复合赋值符 += -= *= /= %= >>= <<= &= |= ^=

    单目操作符

    ! // 逻辑反操作 - //负值 + //正值 & //取地址 sizeof //操作数的类型长度(以字节为单位) ~ //对一个数的二进制按位取反 -- //前置、后置-- ++ //前置、后置++ * //间接访问操作符(解引用操作符) (类型) //强制类型转换

    注意sizeof在编译期间只确定类型大小,不参与运算

    int main() { int arr[10] = {0}; int a = -1; printf("%d\n",sizeof(a++)); printf("%d\n", a); system("pause"); return 0; }

    输出结果a还是-1

    关系操作符

    > >= < <= != //用于测试“不相等” == //用于测试“相等”

    逻辑操作符

    && 逻辑与 || 逻辑或

    表达式1 && 表达式2 && 表达式3 表达式1为真再执行表达式2,否则不执行 表达式1和表达式2都为真,则执行表达式3,否则不执行

    int main() { int i = 0; int a = 1; int b = 0; int c = 2; i = a++ && b++ && c++; printf("%d %d %d", a, b, c); system("pause"); return 0;

    最新回复(0)