C语言自增减、逻辑运算、位运算、位移运算及三目运算操作

    科技2022-07-11  90

    你崩溃到凌晨,她和他睡到自然醒。。。

    ----  网页云热评

     

    一、自增自减操作

    #include <stdio.h> int main() {     int val = 0, val1 = 0;     ++val;      //前操作     printf("val是%d\n", val);     val++;      //后操作     printf("val是%d\n", val);     val1 = ++val;   //前自增表达式作为数字使用的时候是自增以后的数字     printf("val是%d,val1是%d\n", val, val1);     val1 = val++;   //后自增表达式作为数字使用的死后是自增以前的数字     printf("val是%d,val1是%d\n", val, val1);     val++ + ++val;  //结果不确定,不要在一条语句里对同一个变量多次进行自增或自减计算     return 0; } 运算结果: val是1 val是2 val是3,val1是3 val是4,val1是3

     

    二、逻辑操作符

    int val = 0;     printf("!8是%d\n", !8);     printf("3 < 7 < 5是%d\n", 3 < 7 < 5);   //先计算前面的<,后计算后面的<,所以结果是真     printf("3 < 7 && 7 < 5是%d\n", 3 < 7 && 7 < 5);     1 || ++val;  //因为||具有短路特征,前面的1可以决定整个逻辑表达式的结果,所以没有进行后面的自增计算     printf("val是%d\n", val);     0 && ++val;  //因为&&具有短路特征,前面的0可以决定整个逻辑表达式的结果,所以没有进行后面的自增计算     printf("val是%d\n", val);     system("pause"); 运算结果: !8是0 3 < 7 < 5是1 3 < 7 && 7 < 5是0 val是0 val是0

     

    三、位运算

    #include <stdio.h> int main() {     printf("3 & 5是%d\n", 3 & 5);//0与任何数与运算都是0     printf("3 | 5是%d\n", 3 | 5);//1与任何数或运算都是1     printf("3 ^ 5是%d\n", 3 ^ 5);//异或运算,相同为0,不同为1     return 0; } 运行结果: 3 & 5是1 3 | 5是7 3 ^ 5是6 //变量内容交换 #include <stdio.h> int main() {     int val = 3, val1 = 7, tmp = 0;      /*tmp = val;     val = val1;     val1 = tmp;*/     val ^= val1;     val1 ^= val;     val ^= val1;     printf("val是%d, val1是%d\n", val, val1);     return 0; } 运算结果: val是7, val1是3

     

    四、位移操作

    #include <stdio.h> int main() {     printf("10 << 2是%d\n", 10 << 2); //左移2位相当于乘4     printf("10 >> 2是%d\n", 10 >> 2);//右移2位相当于除4取整     return 0; } 运行结果: 10 << 2是40 10 >> 2是2

     

     

    五、三目运算

    #include <stdio.h> int main() {     int val = 0;     printf("请输入一个数字:");     scanf("%d", &val);     val = val >= 0 ? val : 0 - val;//val>=0为条件,如果真,返回val,若果假,返回0-val     //val >= 0 ? val = val : val = 0 - val;   不要在问号后使用赋值操作符     printf("绝对值是%d\n", val);     return 0; }

     

    欢迎关注公众号:顺便编点程

     

     

    Processed: 0.013, SQL: 8