C语言中关于操作符的理解

本篇文章只会列出大家在生活中经常使用的操作符

 算术操作符

在算数操作符中常用的有,+,-,*,/,% ,我们重点讲一讲 / (除) 和 % (模)

 " / "运算

#include <stdio.h>

int main() {
    int a=5/2;
    float b=5/2;
    float c=5.0/2;
    float d=5/2.0;
    float e=5.0/2.0;
    printf("%d\n",a);
    printf("%f\n",b);
    printf("%f\n",c);
    printf("%f\n",d);
    printf("%f\n",e);
    return 0;
}

 在这当中,我们可以看到输出a,b的时候,无论是用整型还是浮点型,输出的都是2,因为c语言在运算中,如果除号两端都是整数,则默认是整数除法,这个时候无论是以什么形式输出都是按照整数的显示来进行运算的,我们的解决方案可以是像c,d,e一样在除号的前后把任意一个或全部的数字变成小数,这样在运算的时候就会以浮点型来运算了。

 "%"运算

#include <stdio.h>
int main() {
    int a=5%2;
    int b=10%2;
    printf("%d\n",a);
    printf("%d\n",b);
    return 0;
}

 在模运算中,我们可以看见,模运算求的是两个数相除后得到的余数,看似很简单,但在一些c语言问题当中有着大用处,例如要求每一位数字之和,我们就可以利用模运算来求出每一位的数字是多少,然后再进行除运算,以达到解决问题的方法。


位操作符

在位操作符中常用的有,&(与),|(或)

现在还没有合适的例子,等以后找到例子再来补充完整


单目操作符

单目操作符中常用的有,!,+,-,--,++,sizeof

单目操作符就是只有一个操作数的操作符

例如a++;

在这里++只有前面有一个操作数,使用++就是单目操作符

同理,双目操作符就是左右都有操作数的操作符

例如a+b;

+的左右都有操作数,使用+就是双目操作符

"!"运算

#include <stdio.h>
int main() {
    int a=5;
    int b=0;
    printf("a=%d\n",!a);
    printf("b=%d\n",!b);
    return 0;
}

 在!运算中,0表示假,非0表示真,c语言中判断时,把真值默认为1,所以在这个程序中,输出的结果是0和1。

"-" ,"+" 运算

#include <stdio.h>
int main() {
    int a=5;
    int b=-3;
    printf("a=%d\n",-a);
    printf("b=%d\n",-b);
    return 0;
}

 通过上面的程序我们可以看出,跟a+b,a-b不同,这里的作用并不是相加或相减,在单目操作符里面"-","+"就是表示正负的意思

 "++","--"运算

#include <stdio.h>
int main() {
    int a=6;
    int b=++a;          //先++,后赋值
    int c=a++;          //先赋值,后++
    printf("a=%d\n",a);
    printf("b=%d\n",b);
    printf("c=%d\n",c);
    return 0;
}

 在这个程序中,我们可以看见a,b,c都分别变成了8,7,7

a=6a=6,b,c
b=6+1(直接加)a=7,b=7
c=7+1(这里的+1是运行完之后再+1,所以在这里c还是7)a=7,b=7c=7
输出时,由于c运算完了,所以这个时候c后面的++开始执行,执行后a=8

所以最后运行出来的结果是这个样子的 

"sizeof"运算

sizeof的理解icon-default.png?t=N7T8https://blog.csdn.net/lzcandhyandcg/article/details/134960729?spm=1001.2014.3001.5502


逻辑操作符

逻辑操作符中常用的有:"&&","||"

 "&&"运算

#include <stdio.h>
int main()
{
    int a, b=0;
    for (a = 1; a <= 100; a++)
    {
        if(a%5==0 && a%3==0)
        {
            printf("%d\t",a);
            b++;
            if(b%5==0)
                printf("\n");
        }
    }
    return 0;
}

 "&&"可以理解为并且的意思,在这个程序当中既能被5整除,也能被3整除的数就输出

 "||"运算

#include <stdio.h>
int main()
{
    int a, b=0;
    for (a = 1; a <= 100; a++)
    {
        if(a%5==0 || a%11==0)
        {
            printf("%d\t",a);
            b++;
            if(b%5==0)                //如果b%5等于0,则换行
                printf("\n");         //简单来说,就是每行只能有5个输出
        }
    }
    return 0;
}

"||"可以理解为或者的意思,在这个程序当中既能被5整除又能被11整除的数就输出 

 条件操作符(三目操作符)

条件操作符有:"? :"

这是一个条件操作符,具体用法如下

exp1 ? exp2 : exp3

如果exp1成立,则执行exp2

如果exp1不成立,则执行exp3

#include <stdio.h>
int main()
{
    int a=11;
    int b=3;
    int max=0;
    int min=0;
    max=a>b ? a : b;
    min=a>b ? b : a;
    printf("%d\n",max);
    printf("%d\n",min);
    return 0;
}

 在这个程序中,我们可以很清晰的看见条件操作符1的用法,跟if语句差不多,但比if语句更加简洁

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C/C++常见面试题(四)

C/C面试题集合四 目录 1、什么是C中的类&#xff1f;如何定义和实例化一个类&#xff1f; 2、请解释C中的继承和多态性。 3、什么是虚函数&#xff1f;为什么在基类中使用虚函数&#xff1f; 4、解释封装、继承和多态的概念&#xff0c;并提供相应的代码示例 5、如何处理内…

鸿蒙应用开发 常用组件与布局

简介 HarmonyOS ArkUI 提供了丰富多样的 UI 组件&#xff0c;您可以使用这些组件轻松地编写出更加丰富、漂亮的界面。在本篇 Codelab 中&#xff0c;您将通过一个简单的购物社交应用示例&#xff0c;学习如何使用常用的基础组件和容器组件。本示例主要包含&#xff1a;“登录”…

五、交换机基础配置实验

文章目录 实验内容实验拓扑配置交换机双工模式 实验内容 某公司刚成立&#xff0c;新组建网络&#xff0c;购置了 3 台交换机。其中 S1和 S2为接入层交换机&#xff0c;S3 为汇聚层交换机。现在网络管理员需要对3 台新交换机进行基本配置&#xff0c;保证交换机间的接口使用全…

Spring系列学习一、Spring框架的概论

Spring框架的概论 一、 Spring框架的起源与历史二、 Spring框架的核心理念与特点三、 Spring与其他框架的对比1、首先介绍下Spring与其平替的EJB的对比&#xff1a;2、接下来介绍下Spring与基于Java EE原生技术的对比3、Spring与Hibernate的对比4、Spring与Struts的对比 四、Sp…

Oracle研学-查询

学自B站黑马程序员 1.单表查询 //查询水表编号为 30408 的业主记录 select * from T_OWNERS where watermeter30408 //查询业主名称包含“刘”的业主记录 select * from t_owners where name like %刘% //查询业主名称包含“刘”的并且门牌号包含 5 的业主记录 select * from…

视频编辑与制作,添加视频封面的软件

如今&#xff0c;视频已经成为了我们生活中不可或缺的一部分&#xff0c;无论是社交媒体上的短视频&#xff0c;还是电影、电视剧&#xff0c;视频都以其独特的魅力吸引着我们的目光。而在这背后&#xff0c;视频剪辑软件功不可没。今天&#xff0c;我就为大家揭秘一款新一代的…

强化学习_06_pytorch-TD3实践(CarRacing-v2)

0、TD3算法原理简介 详见笔者前一篇实践强化学习_06_pytorch-TD3实践(BipedalWalkerHardcore-v3) 1、CarRacing环境观察及调整 Action SpaceBox([-1. 0. 0.], 1.0, (3,), float32)Observation SpaceBox(0, 255, (96, 96, 3), uint8) 动作空间是[-1~1, 0~1, 0~1]&#xff0c…

10 NAT网络地址转换

广域网技术 上面聊的内容都是内网的一些配置&#xff0c;但内网终将要访问外网的&#xff0c;我们需要怎么处理呢&#xff1f;一般使用HDLC&#xff08;高级数据链路控制协议&#xff09;或者PPP&#xff08;点对点协议&#xff09;。 使用PPP安全接入Internet PPP&#xff0…

Podman配置mongodb

文章目录 查询镜像拉取镜像查看镜像运行容器创建root用户 查询镜像 podman search mongo拉取镜像 podman pull docker.io/library/mongo查看镜像 podman images运行容器 podman run -d -p 27017:27017 --namemongodb-test docker.io/library/mongo创建root用户 podman exe…

详解现实世界资产(RWAs)

区块链中的现实世界资产&#xff08;RWAs&#xff09;是代表实际和传统金融资产的数字通证&#xff0c;如货币、大宗商品、股票和债券。 实际世界资产&#xff08;RWA&#xff09;的通证化是区块链行业中最大的市场机会之一&#xff0c;潜在市场规模可达数万万亿美元。理论上&…

12章总结

一.集合类概述 java.util包中提供了一些集合类&#xff0c;这些集合类又被称为容器。 集合类与数组的不同之处&#xff1a; 数组的长度是固定的&#xff0c;集合的长度是可变的&#xff1a;数组用来存放基本类型的数据&#xff0c;集合用来存放对象的引用。 常…

windows下使用vccode+cmake编译cuda程序

1、在vscode中安装Nsight Visual Studio Code Edition 在vscode中安装插件能够对cuda的代码进行语法检查 2、编写cuda程序 #include <iostream>__global__ void mykernelfunc(){}; int main() {mykernelfunc<<<1,1>>>();std::cout << "hel…

C++ 比 C语言增加的新特性 2

1.C新增了带默认值参数的函数 1.1 格式 格式&#xff1a;返回值 函数名&#xff08;参数1初始值1&#xff0c;..........&#xff09;{} 例如&#xff1a;void function&#xff08;int a10&#xff09;{} 调用&#xff1a;不需要更改参数的值&#xff1a;function&#x…

Kubernetes 学习总结(40)—— Kubernetes 之 自动伸缩 HPA、VPA、CA和CPA详解

前言 Kubernetes 提供了多种自动伸缩机制&#xff0c;例如 HPA&#xff08;Horizontal Pod Autoscaling&#xff09;&#xff0c;可以根据不同情况动态调整 Pod 副本数量。此功能使 Pod 能够有效地处理当前流量&#xff0c;而无需管理员不断干预来调整副本数量。除了 HPA 之外…

每日一题——LeetCode160.相交链表

个人主页&#xff1a;白日依山璟 专栏&#xff1a;Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1&#xff1a;示例2&#xff1a;提示&#xff1a; 2. 思路3. 代码 1. 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的…

HarmonyOs4.0基础(一)

目录 一、HarmonyOs系统定义 1.1系统的技术特性(三大特征) 1.1.1、硬件互助、资源共享 1.1.2、一次开发、多端部署(面向开发者) 1.1.3、统一OS&#xff0c;弹性部署(支持多种API&#xff1a;ArkTs、JS、C/C、Java) 1.2、系统的技术架构 二、Harmony OS项目搭建 2.1、(D…

Github 2023-12-24 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2023-12-24统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目5Jupyter Notebook项目2C项目1C项目1Go项目1Java项目1JavaScript项目1Ruby项目1 Serverless Frame…

【零基础入门Docker】如何构建Web服务Dockerfile?

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;零基础入门Docker专栏https://blog.csdn.net/arthas777/category_12455882.html 目录 步骤1&#xff1a;第一步是构建我们的Docker文件&#xff0c;您可以使用vim编辑器。 步骤2&#xff1a;下一步是使用docker build命令…

【Python机器学习系列】一文搞懂机器学习中的转换器和估计器(附案例)

一、引言 表格数据一套完整的机器学习建模流程如下&#xff1a; 在机器学习中&#xff0c;转换器&#xff08;Transformer&#xff09;和估计器&#xff08;Estimator&#xff09;是两个重要的概念&#xff0c;转换器和估计器在机器学习中扮演不同的角色&#xff0c;但它们通常…

【论文解读】CNN-Based Fast HEVC Quantization Parameter Mode Decision

时间&#xff1a;2019 年 级别&#xff1a;SCI 机构&#xff1a;南京信息工程大学 摘要 随着多媒体呈现技术、图像采集技术和互联网行业的发展&#xff0c;远程通信的方式已经从以前的书信、音频转变为现在的音频/视频。和 视频在工作、学习和娱乐中的比例不断提高&#xff0…