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

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

一、自增自减操作


#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;
}


目录
相关文章
|
2月前
|
C语言
C语言判断逻辑的高阶用法
在C语言中,高级的判断逻辑技巧能显著提升代码的可读性、灵活性和效率。本文介绍了六种常见方法:1) 函数指针,如回调机制;2) 逻辑运算符组合,实现复杂条件判断;3) 宏定义简化逻辑;4) 结构体与联合体组织复杂数据;5) 递归与分治法处理树形结构;6) 状态机管理状态转换。通过这些方法,可以更高效地管理和实现复杂的逻辑判断,使代码更加清晰易懂。
229 88
|
2月前
|
存储 C语言 数据格式
【C语言基础考研向】03混合运算和printf讲解
本文分为两部分。第一部分介绍了C语言中的混合运算与类型强制转换的重要性,通过实例展示了当整型数进行除法运算且结果为小数时,必须使用类型转换才能正确存储浮点数结果。第二部分详细讲解了`printf`函数的功能与使用方法,包括格式化输出不同类型数据的基本语法,并通过具体示例演示了如何利用字段宽度和对齐方式来控制输出格式,帮助读者更好地理解和掌握输出格式的控制技巧。
47 10
|
1月前
|
编译器 C语言 C++
【C语言】精妙运用内存函数:深入底层逻辑的探索
【C语言】精妙运用内存函数:深入底层逻辑的探索
|
2月前
|
存储 C语言
C语言程序设计核心详解 第十章:位运算和c语言文件操作详解_文件操作函数
本文详细介绍了C语言中的位运算和文件操作。位运算包括按位与、或、异或、取反、左移和右移等六种运算符及其复合赋值运算符,每种运算符的功能和应用场景都有具体说明。文件操作部分则涵盖了文件的概念、分类、文件类型指针、文件的打开与关闭、读写操作及当前读写位置的调整等内容,提供了丰富的示例帮助理解。通过对本文的学习,读者可以全面掌握C语言中的位运算和文件处理技术。
|
4月前
|
语音技术 C语言 Windows
语音识别------ffmpeg的使用01,ffmpeg的安装,会做PPT很好,ffmpeg不具备直接使用,只可以操作解码数据,ffmpeg用C语言写的,得学C语言,ffmpeg的安装
语音识别------ffmpeg的使用01,ffmpeg的安装,会做PPT很好,ffmpeg不具备直接使用,只可以操作解码数据,ffmpeg用C语言写的,得学C语言,ffmpeg的安装
|
5月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
5月前
|
C语言
C 语言的运算及流程控制分享
C 语言的运算及流程控制
|
5月前
|
编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
49 3
|
5月前
|
存储 编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
40 1
|
5月前
|
C语言
C语言中的位运算详解
C语言中的位运算详解
112 0