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;
}
目录
相关文章
|
22天前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
34 1
|
20天前
|
C语言
【C语言】逻辑操作符详解 - 《真假美猴王 ! 》
C语言中有三种主要的逻辑运算符:逻辑与(`&&`)、逻辑或(`||`)和逻辑非(`!`)。这些运算符用于执行布尔逻辑运算。
62 7
|
21天前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
21天前
|
存储 算法 安全
C 语言中的位运算:挖掘底层计算的高效力量
位运算是C语言中直接操作二进制位的一种技术,能高效处理底层数据,广泛应用于优化算法、硬件编程等领域,是掌握C语言高级特性的关键之一。
|
3月前
|
C语言
C语言判断逻辑的高阶用法
在C语言中,高级的判断逻辑技巧能显著提升代码的可读性、灵活性和效率。本文介绍了六种常见方法:1) 函数指针,如回调机制;2) 逻辑运算符组合,实现复杂条件判断;3) 宏定义简化逻辑;4) 结构体与联合体组织复杂数据;5) 递归与分治法处理树形结构;6) 状态机管理状态转换。通过这些方法,可以更高效地管理和实现复杂的逻辑判断,使代码更加清晰易懂。
241 88
|
23天前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
40 2
|
3月前
|
存储 C语言 数据格式
【C语言基础考研向】03混合运算和printf讲解
本文分为两部分。第一部分介绍了C语言中的混合运算与类型强制转换的重要性,通过实例展示了当整型数进行除法运算且结果为小数时,必须使用类型转换才能正确存储浮点数结果。第二部分详细讲解了`printf`函数的功能与使用方法,包括格式化输出不同类型数据的基本语法,并通过具体示例演示了如何利用字段宽度和对齐方式来控制输出格式,帮助读者更好地理解和掌握输出格式的控制技巧。
54 10
|
2月前
|
编译器 C语言 C++
【C语言】精妙运用内存函数:深入底层逻辑的探索
【C语言】精妙运用内存函数:深入底层逻辑的探索
|
3月前
|
存储 C语言
C语言程序设计核心详解 第十章:位运算和c语言文件操作详解_文件操作函数
本文详细介绍了C语言中的位运算和文件操作。位运算包括按位与、或、异或、取反、左移和右移等六种运算符及其复合赋值运算符,每种运算符的功能和应用场景都有具体说明。文件操作部分则涵盖了文件的概念、分类、文件类型指针、文件的打开与关闭、读写操作及当前读写位置的调整等内容,提供了丰富的示例帮助理解。通过对本文的学习,读者可以全面掌握C语言中的位运算和文件处理技术。
|
5月前
|
语音技术 C语言 Windows
语音识别------ffmpeg的使用01,ffmpeg的安装,会做PPT很好,ffmpeg不具备直接使用,只可以操作解码数据,ffmpeg用C语言写的,得学C语言,ffmpeg的安装
语音识别------ffmpeg的使用01,ffmpeg的安装,会做PPT很好,ffmpeg不具备直接使用,只可以操作解码数据,ffmpeg用C语言写的,得学C语言,ffmpeg的安装