小白必看系列之c语言中常见操作符示例和用法总结

news2024/10/3 10:41:34

文章目录

  • 前言
  • 算术操作符(Arithmetic Operators)
    • 代码示例
    • 代码解析
  • 关系操作符(Relational Operators)
    • 代码示例
    • 代码解析
  • 逻辑操作符(Logical Operators)
    • 代码示例
    • 代码解析
  • 位操作符(Bitwise Operators)
  • 代码示例
    • 代码解析
  • 赋值操作符(Assignment Operators)
    • 示例代码
    • 代码解析
  • 总结

前言

C语言是一种广泛使用的编程语言,拥有丰富的操作符(operator)来进行不同类型的操作。下面我将详细介绍常用的C语言操作符及其功能:

算术操作符(Arithmetic Operators)

在这里插入图片描述

  • ‘+’:加法操作符,用于两个数值相加。
  • ‘-’:减法操作符,用于两个数值相减。
  • ‘*’:乘法操作符,用于两个数值相乘。
  • ‘/’:除法操作符,用于两个数值相除。
  • ‘%’:取模操作符,返回除法运算的余数。

代码示例

#include <stdio.h>

int main() {
    int a = 6;
    int b = 3;
    
    int sum = a + b;
    int difference = a - b;
    int product = a * b;
    int quotient = a / b;
    int remainder = a % b;
    
    printf("Sum: %d\n", sum);
    printf("Difference: %d\n", difference);
    printf("Product: %d\n", product);
    printf("Quotient: %d\n", quotient);
    printf("Remainder: %d\n", remainder);
    
    return 0;
}

代码解析

#include <stdio.h>

这行代码是一个预处理指令,用于包含 C 标准库中的标准输入输出函数的声明。

int main() {

这行代码定义了程序的主函数 main(),它是程序执行的入口点。

    int a = 6;
    int b = 3;

这两行代码定义了两个整数变量 ab,并将它们的值分别初始化为 6 和 3。

    int sum = a + b;
    int difference = a - b;
    int product = a * b;
    int quotient = a / b;
    int remainder = a % b;

这几行代码使用算术运算符对变量 ab 进行计算,并将结果赋值给对应的变量。sum 存储了 ab 的和,difference 存储了 ab 的差,product 存储了 ab 的乘积,quotient 存储了 a 除以 b 的商,remainder 存储了 a 除以 b 的余数。

    printf("Sum: %d\n", sum);
    printf("Difference: %d\n", difference);
    printf("Product: %d\n", product);
    printf("Quotient: %d\n", quotient);
    printf("Remainder: %d\n", remainder);

这几行代码使用 printf() 函数将计算结果打印输出。%d 是格式字符,用于指示打印整数类型的值。\n 是转义字符,表示换行。

    return 0;
}

最后,这行代码表示程序正常结束,并将零作为返回值传递给操作系统。

关系操作符(Relational Operators)

在这里插入图片描述

  • ‘==’:等于操作符,检查两个操作数是否相等。
  • ‘!=’:不等于操作符,检查两个操作数是否不相等。
  • ‘>’:大于操作符,检查左操作数是否大于右操作数。
  • ‘<’:小于操作符,检查左操作数是否小于右操作数。
  • ‘>=’:大于等于操作符,检查左操作数是否大于或等于右操作数。
  • ‘<=’:小于等于操作符,检查左操作数是否小于或等于右操作数。

代码示例

#include <stdio.h>

int main() {
    int a = 5;
    int b = 3;
    
    if (a == b) {
        printf("a is equal to b\n");
    } else if (a != b) {
        printf("a is not equal to b\n");
    }
    
    if (a > b) {
        printf("a is greater than b\n");
    }
    
    if (a < b) {
        printf("a is less than b\n");
    }
    
    if (a >= b) {
        printf("a is greater than or equal to b\n");
    }
    
    if (a <= b) {
        printf("a is less than or equal to b\n");
    }
    
    return 0;
}

代码解析

#include <stdio.h>

这行代码是一个预处理指令,用于包含 C 标准库中的标准输入输出函数的声明。

int main() {

这行代码定义了程序的主函数 main(),它是程序执行的入口点。

    int a = 5;
    int b = 3;

这两行代码定义了两个整数变量 ab,并将它们的值分别初始化为 5 和 3。

    if (a == b) {
        printf("a is equal to b\n");
    } else if (a != b) {
        printf("a is not equal to b\n");
    }

这部分代码使用条件语句 if-else 进行比较。首先,判断 a 是否等于 b,如果相等,则执行 if 代码块中的语句,并打印 “a is equal to b”。如果不相等,则执行 else 代码块中的语句,并打印 “a is not equal to b”。

    if (a > b) {
        printf("a is greater than b\n");
    }

这部分代码使用条件语句 if 判断 a 是否大于 b,如果成立,则执行代码块中的语句,并打印 “a is greater than b”。

    if (a < b) {
        printf("a is less than b\n");
    }

这部分代码使用条件语句 if 判断 a 是否小于 b,如果成立,则执行代码块中的语句,并打印 “a is less than b”。

    if (a >= b) {
        printf("a is greater than or equal to b\n");
    }

这部分代码使用条件语句 if 判断 a 是否大于等于 b,如果成立,则执行代码块中的语句,并打印 “a is greater than or equal to b”。

    if (a <= b) {
        printf("a is less than or equal to b\n");
    }

这部分代码使用条件语句 if 判断 a 是否小于等于 b,如果成立,则执行代码块中的语句,并打印 “a is less than or equal to b”。

    return 0;
}

最后,这行代码表示程序正常结束,并将零作为返回值传递给操作系统。

逻辑操作符(Logical Operators)

在这里插入图片描述

  • ‘&&’:与操作符,用于两个条件都为真时返回真。
  • ‘||’:或操作符,用于两个条件之一为真时返回真。
  • ‘!’:非操作符,用于取反当前条件的值。

代码示例

#include <stdio.h>

int main() {
    int x = 5;
    int y = 3;
    
    if (x > 0 && y > 0) {
        printf("Both x and y are positive\n");
    }
    
    if (x > 0 || y > 0) {
        printf("Either x or y is positive\n");
    }
    
    if (!(x > 0)) {
        printf("x is not positive\n");
    }
    
    return 0;
}

代码解析

#include <stdio.h>

这行代码是一个预处理指令,用于包含 C 标准库中的标准输入输出函数的声明。

int main() {

这行代码定义了程序的主函数 main(),它是程序执行的入口点。

    int x = 5;
    int y = 3;

这两行代码定义了两个整数变量 xy,并将它们的值分别初始化为 5 和 3。

    if (x > 0 && y > 0) {
        printf("Both x and y are positive\n");
    }

这部分代码使用条件语句 if 判断 x 是否大于 0 并且 y 是否大于 0。如果两个条件均满足,则执行代码块中的语句,并打印 “Both x and y are positive”。

    if (x > 0 || y > 0) {
        printf("Either x or y is positive\n");
    }

这部分代码使用条件语句 if 判断 x 是否大于 0 或者 y 是否大于 0。如果其中一个条件成立,则执行代码块中的语句,并打印 “Either x or y is positive”。

    if (!(x > 0)) {
        printf("x is not positive\n");
    }

这部分代码使用条件语句 if 判断 x 是否不大于 0。如果条件不成立,则执行代码块中的语句,并打印 “x is not positive”。这里的 ! 是逻辑运算符取反的意思。

    return 0;
}

最后,这行代码表示程序正常结束,并将零作为返回值传递给操作系统。

位操作符(Bitwise Operators)

  • ‘&’:与操作符,按位进行与操作。
  • ‘|’:或操作符,按位进行或操作。
  • ‘^’:异或操作符,按位进行异或操作。
  • ‘~’:取反操作符,按位进行取反操作。
  • ‘<<’:左移操作符,将数值左移指定位数。
  • ‘>>’:右移操作符,将数值右移指定位数。

代码示例

#include <stdio.h>

int main() {
    unsigned int a = 60;    // 0011 1100
    unsigned int b = 13;    // 0000 1101
    
    unsigned int result;
    
    result = a & b;    // Bitwise AND: 0000 1100
    printf("Bitwise AND: %u\n", result);
    
    result = a | b;    // Bitwise OR: 0011 1101
    printf("Bitwise OR: %u\n", result);
    
    result = a ^ b;    // Bitwise XOR: 0011 0001
    printf("Bitwise XOR: %u\n", result);
    
    result = ~a;    // Bitwise NOT: 1100 0011
    printf("Bitwise NOT: %u\n", result);
    
    result = a << 2;    // Left shift: 1111 0000
    printf("Left shift: %u\n", result);
    
    result = a >> 2;    // Right shift: 0000 1111
    printf("Right shift: %u\n", result);
    
    return 0;
}

代码解析

#include <stdio.h>

这行代码是一个预处理指令,用于包含 C 标准库中的标准输入输出函数的声明。

int main() {

这行代码定义了程序的主函数 main(),它是程序执行的入口点。

    unsigned int a = 60;    // 0011 1100
    unsigned int b = 13;    // 0000 1101

这两行代码定义了两个无符号整数变量 ab,并将它们的值分别初始化为 60 和 13。注释 // 后的二进制表示形式是为了说明变量的位模式。

    unsigned int result;

这行代码定义了一个无符号整数变量 result,用于存储运算结果。

    result = a & b;    // Bitwise AND: 0000 1100
    printf("Bitwise AND: %u\n", result);

这部分代码使用按位与操作符 & 对变量 ab 进行按位与运算,并将结果赋值给 result。然后使用 printf 函数打印出 “Bitwise AND: 12”。

    result = a | b;    // Bitwise OR: 0011 1101
    printf("Bitwise OR: %u\n", result);

这部分代码使用按位或操作符 | 对变量 ab 进行按位或运算,并将结果赋值给 result。然后使用 printf 函数打印出 “Bitwise OR: 61”。

    result = a ^ b;    // Bitwise XOR: 0011 0001
    printf("Bitwise XOR: %u\n", result);

这部分代码使用按位异或操作符 ^ 对变量 ab 进行按位异或运算,并将结果赋值给 result。然后使用 printf 函数打印出 “Bitwise XOR: 49”。

    result = ~a;    // Bitwise NOT: 1100 0011
    printf("Bitwise NOT: %u\n", result);

这部分代码使用按位取反操作符 ~ 对变量 a 进行按位取反运算,并将结果赋值给 result。然后使用 printf 函数打印出 “Bitwise NOT: 195”。

    result = a << 2;    // Left shift: 1111 0000
    printf("Left shift: %u\n", result);

这部分代码使用左移操作符 << 将变量 a 的二进制位向左移动两位,并将结果赋值给 result。然后使用 printf 函数打印出 “Left shift: 240”。

    result = a >> 2;    // Right shift: 0000 1111
    printf("Right shift: %u\n", result);

这部分代码使用右移操作符 >> 将变量 a 的二进制位向右移动两位,并将结果赋值给 result。然后使用 printf 函数打印出 “Right shift: 15”。

    return 0;
}

最后,这行代码表示程序正常结束,并将零作为返回值传递给操作系统。

赋值操作符(Assignment Operators)

在这里插入图片描述

  • ‘=’:简单赋值操作符,将右侧的值赋给左侧的变量。
  • ‘+=’:加法赋值操作符,将左操作数和右操作数相加后,结果赋给左操作数。
  • ‘-=’:减法赋值操作符,将左操作数和右操作数相减后,结果赋给左操作数。
  • ‘*=’:乘法赋值操作符,将左操作数和右操作数相乘后,结果赋给左操作数。
  • ‘/=’:除法赋值操作符,将左操作数和右操作数相除后,结果赋给左操作数。
  • ‘%=’:取模赋值操作符,将左操作数除以右操作数的余数赋给左操作数。

示例代码

 #include <stdio.h>

int main() {
    int a = 5;
    int b = 3;
    
    a += b;    // Equivalent to: a = a + b
    printf("a += b: %d\n", a);
    
    a -= b;    // Equivalent to: a = a - b
    printf("a -= b: %d\n", a);
    
    a *= b;    // Equivalent to: a = a * b
    printf("a *= b: %d\n", a);
    
    a /= b;    // Equivalent to: a = a / b
    printf("a /= b: %d\n", a);
    
    a %= b;    // Equivalent to: a = a % b
    printf("a %%= b: %d\n", a);
    
    return 0;
}

代码解析

#include <stdio.h>

这行代码是一个预处理指令,用于包含 C 标准库中的标准输入输出函数的声明。

int main() {

这行代码定义了程序的主函数 main(),它是程序执行的入口点。

    int a = 5;
    int b = 3;

这两行代码定义了两个整数变量 ab,并将它们的值分别初始化为 5 和 3。

    a += b;    // Equivalent to: a = a + b
    printf("a += b: %d\n", a);

这部分代码使用赋值运算符 += 将变量 a 与变量 b 相加,并将结果赋值给 a,相当于执行 a = a + b。然后使用 printf 函数打印出 “a += b: 8”。

    a -= b;    // Equivalent to: a = a - b
    printf("a -= b: %d\n", a);

这部分代码使用赋值运算符 -= 将变量 a 与变量 b 相减,并将结果赋值给 a,相当于执行 a = a - b。然后使用 printf 函数打印出 “a -= b: 5”。

    a *= b;    // Equivalent to: a = a * b
    printf("a *= b: %d\n", a);

这部分代码使用赋值运算符 *= 将变量 a 与变量 b 相乘,并将结果赋值给 a,相当于执行 a = a * b。然后使用 printf 函数打印出 “a *= b: 15”。

    a /= b;    // Equivalent to: a = a / b
    printf("a /= b: %d\n", a);

这部分代码使用赋值运算符 /= 将变量 a 与变量 b 相除,并将结果赋值给 a,相当于执行 a = a / b。然后使用 printf 函数打印出 “a /= b: 5”。

    a %= b;    // Equivalent to: a = a % b
    printf("a %%= b: %d\n", a);

这部分代码使用赋值运算符 %= 将变量 a 与变量 b 进行取模运算,并将结果赋值给 a,相当于执行 a = a % b。然后使用 printf 函数打印出 “a %= b: 2”。

    return 0;
}

最后,这行代码表示程序正常结束,并将零作为返回值传递给操作系统。

这些是C语言中一些常用的操作符,通过灵活运用这些操作符,可以实现不同类型的计算和逻辑控制。

总结

本文总结了C语言中常见的操作符示例和用法,包括算术操作符、关系操作符、逻辑操作符、位操作符和赋值操作符。每个示例都提供了代码和输出结果,方便读者理解操作符的功能。通过这些示例,读者可以学习如何进行算术计算、条件判断、逻辑运算和位操作等编程任务。此外,赋值操作符的使用也得到了介绍,它可以简化变量的更新和计算过程。学习这些操作符可以提高编程效率,并编写更具表达力和功能性的代码。掌握这些操作符对于初学者来说尤其重要,它们是构建复杂程序的基础。通过不断练习和实践,读者将逐渐熟悉这些操作符,并能够灵活运用它们解决实际编程问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/787694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

矩阵svd分解和矩阵的伪逆

真该好好学习一下Latex数学公式的语法和规则了&#xff0c;否则&#xff0c;连写个博客都没法写&#xff0c;这叫什么事&#xff01; https://blog.csdn.net/ViatorSun/article/details/82826664 直接上数学博士写的ppt图&#xff08;肯定比我在这里胡说八道强的多&#xff0…

【设计模式——学习笔记】23种设计模式——原型模式Prototype(原理讲解+应用场景介绍+案例介绍+Java代码实现)

原型模式 介绍 原型模式指用通过拷贝原型实例创建新的实例&#xff0c;新实例和原型实例的属性完全一致原型模式是一种创建型设计模式工作原理是通过调用原型实例的 clone()方法来完成克隆&#xff0c;原型实例需要实现Cloneable接口&#xff0c;并重写clone()方法需要为每个…

平台化的测试工具推荐|一站式测试平台RunnerGo

互联网行业的发展到今天越来越多的公司更加注重工作效率和团队协作&#xff0c;越来越多的产品也趋于平台化&#xff0c;平台化也更有利于提高团队效率&#xff0c;代码管理、持续构建、持续部署这些工具的发展都是非常超前的&#xff0c;它们对于团队协作的支持和工作效率的提…

河南移动联合中兴打造SPNPTN网络融合示范样板

最近河南移动和中兴在濮阳进行SPN和PTN两网融合规模部署&#xff0c;可以充分展示出PTN网络价值&#xff0c;并优化网络结构、降低网络运营成本&#xff0c;实现SPN和PTN网络的融合融通&#xff0c;在增强SPN网络综合业务承载能力之余也能提升了网络性能。 河南移动现在是SDH、…

CF1837 A-D

A题 题目链接&#xff1a;https://codeforces.com/problemset/problem/1837/A 基本思路&#xff1a; 要求计算蚂蚱到达位置 x最少需要多少次跳跃&#xff0c;并输出蚂蚱的跳跃方案。因为每次可以向左或向右跳跃一定距离&#xff08;距离必须为整数&#xff09;&#xff0c;但是…

微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka

1 安装Redis 1.1创建配置文件redis.conf 切换到自己的目录下如本文是放在/home/ubuntu下 cd /home/ubuntuvim redis.conf bind 0.0.0.0 protected-mode yes port 6379 requirepass qwe123456 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no pidfile /var/run/r…

STM32MP157驱动开发——按键驱动(工作队列)

文章目录 “工作队列”机制&#xff1a;内核函数work_struct 结构体定义 work使用 work &#xff1a;schedule_workworkqueue 其他函数 工作队列方式的按键驱动程序(stm32mp157)编程思路button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “工作队列”机制&#xff1…

UDS之11服务

11服务&#xff1a; 功能&#xff1a;控制MCU进行重启&#xff0c;重启分为硬重启和软重启&#xff0c;11服务一般代表软重启&#xff0c;虽然它里面有个子服务是硬件重启&#xff0c;这里需要注意下&#xff1b;硬重启在日常工作中一般代表B重启。命令格式&#xff08;请求&am…

外贸找客户工具之邮件群发:MaxBulk Bulk Mailer Pro 9.5

MaxBulk Bulk Mailer Pro 是一款快速的批量邮件软件&#xff0c;旨在帮助在一次操作中向大量电子邮件 ID 发送批量电子邮件。直接将电子邮件发送到收件箱而不是垃圾邮件。该工具的目的是使批量电子邮件处理过程快速而精确&#xff0c;并且它配备了很多高级功能来实现此目的。用…

集成学习——Boosting算法:Adaboost、GBDT、XGBOOST和lightGBM的简要原理和区别

1、Boosting算法 Boosting算法是通过串联的方式&#xff0c;将一组弱学习器提升为强学习器算法。它的工作机制如下&#xff1a; &#xff08;1&#xff09;用初始训练集训练出一个基学习器&#xff1b; &#xff08;2&#xff09;依据基学习器的表现对训练样本分布进行调整&…

基于Truss+Docker+Kubernetes把开源模型Falcon-7B送上云端(译)

背景 到目前为止&#xff0c;我们已经看到了ChatGPT的能力及其所能提供的强大功能。然而&#xff0c;对于企业应用来说&#xff0c;像ChatGPT这样的封闭源代码模型可能会带来风险&#xff0c;因为企业自身无法控制他们的数据。尽管OpenAI公司声称用户数据不会被存储或用于训练…

【玩转Linux】标准IO函数

(꒪ꇴ꒪ ),hello我是祐言博客主页&#xff1a;C语言基础,Linux基础,软件配置领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff01;送给读者的一句鸡汤&#x1f914;&#xff1a;集中起来的意志可以击穿顽石!作者水平很有限&#xff0c;如果发现错误&#x…

Emvirus: 基于 embedding 的神经网络来预测 human-virus PPIs【Biosafety and Health,2023】

研究背景&#xff1a; Human-virus PPIs 预测对于理解病毒感染机制、病毒防控等十分重要&#xff1b;大部分基于 machine-learning 预测 human-virus PPIs 的方法利用手动方法处理序列特征&#xff0c;包括统计学特征、系统发育图谱、理化性质等&#xff1b;本文作者提出了一个…

redis面试1

Redis基础面试题 1、为什么要使用Redis做缓存 缓存的好处 使用缓存的目的就是提升读写性能。而实际业务场景下&#xff0c;更多的是为了提升读性能&#xff0c;带来更好的性 能&#xff0c;带来更高的并发量。Redis 的读写性能比 Mysql 好的多&#xff0c;我们就可以把 Mysq…

探索APP开发的新趋势:人工智能和大数据的力量

随着5G技术的不断发展&#xff0c;人工智能和大数据将会更加广泛的应用于我们生活和工作中&#xff0c;作为 APP开发公司&#xff0c;应该及时的对新技术进行研发&#xff0c;进而更好的为用户服务。目前 APP开发已经不是传统的软件开发了&#xff0c;而是向移动互联网转型&…

完全背包相关题

class Solution { public:int dp[5005];int change(int amount, vector<int>& coins) {//dp[j]表示金额为j时的组合数dp[0]1;for(int i0;i<coins.size();i){for(int jcoins[i];j<amount;j){dp[j]dp[j-coins[i]];}}return dp[amount];} }; 题解&#xff1a;如果…

Pandas库:从入门到应用(四)--数学函数

一、测试数据 import numpy as np import pandas as pd## 5行3列 0到100的数据 df pd.DataFrame(datanp.random.randint(0, 100, size(5, 3))) df二、基础聚合函数 2.1、count()函数 df.count() # 统计每列的行数(非空),默认axis0 df.count(axis1) # 统计每行的列数(非空)…

mysql的主键选择

一.没有定义主键有什么问题 如果定义了主键&#xff0c;那么InnoDB会使用主键作为聚簇索引如果没有定义主键&#xff0c;那么会使用第一非空的唯一索引&#xff08;NOT NULL and UNIQUE INDEX&#xff09;作为聚簇索引如果既没有主键也找不到合适的非空索引&#xff0c;那么In…

案例研究|DataEase助力亚加达智能医学实验室场景BI展示

深圳市亚加达信息技术有限公司&#xff08;以下简称为亚加达&#xff09;成立于2018年&#xff0c;是一家专注于医疗信息系统研发的高科技公司&#xff0c;隶属于亚辉龙集团。 亚加达深入理解医疗实验室业务和日常工作流程&#xff0c;通过物联网和大数据技术&#xff0c;基于…

数据库概述和DDL语句(学会并使用数据库day1)

数据库概述和DDL语句&#xff08;day1&#xff09; 一、数据库概述概念数据库的集中式控制有什么优点数据库分类mysql数据库mysql简介基本术语数据表的组成 数据库管理系统数据库管理系统、数据库和表的关系 二、SQL的概念三、SQL语句分类1、SQL语句被分为四大类2、MySQL的语法…