C语言编程3:运算符,运算符的基本用法

C语言3🔥:运算符,运算符的基本用法

一、运算符🌿

🎇1.1 定义

运算符是指进行运算的动作,比如加法运算符"+“,减法运算符”-"

算子是指参与运算的,这个值可能是常数,也可能是变量,还可能是一个方法的返回值

🎇1.2 单目运算符

只有一个算子的运算符: +,-

例如-a,-b,+a,+b

常用的单目运算符:

+正值
-负值
逻辑反
&取地址
sizeof操作数的类型长度(计算的是变量/类型所占空间的大小,单位是字节)
~对一个数的二进制按位取反
(类型)强制类型转换

🎇1.3 双目运算符

  • 我们已知,只有一个算子的运算符是单目运算符

  • 那么, 有两个算子的运算符就是双目运算符

  • 如:a+bb-a

  • 那么,有三个算子的运算符就是三目运算符

🎇1.4 赋值运算符

赋值(=) 也是运算,也有结果

举个栗子

a=6的结果是a被赋予的值,也就是6

a=b=6在计算机中可以看成是:a = (b=6),也就是,先把6赋给b(此时b的值就是6),然后再把b的值(6)赋给a,所以a的值也是6

= += -= *= /= &= ^= I= >>= <<=

用法:

a+=3 相当于:a=a+3

a-=6 相当于:a=a-6

代码示例如下:


#include <stdio.h>

int main()
{
    int a=6,b=6;                  //初始化
    
    a+=3;                         //计算
    b=b+3;
    
    printf("a=%d,b=%d\n",a,b);     //输出运算结果
     
    return 0;
}

运行结果:


a=9,b=9

解析: a+=3 相当于 a=a+3,把a=6的值代入得:a=6+3 a的值:9

🎇1.5 运算符优先级

🎇1.6 算数运算符(特别重要)

+加法运算符
-减法运算符
*乘法运算符
/除法运算符
%取余运算符
/ 的用法:
int a,b,c,d,e,f,g;

a=5/2;
b=12345/10000;
c=12345/1000;
d=12345/100;
e=12345/10;

printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d",a,b,c,d,e);

运行结果:


a=2
b=1
c=12
d=123
e=1234

解析

a=5/2

5/2=2.5,由于a是整型(int),整形不包含小数部分,在计算时会把小数部分全部舍弃,所以a=5/2中a的结果是2

b=12345/10000 与e=12345/10 (我的想法:12345/10000,除数有几个零,被除数就舍弃几位数,如12345/10000,除数有4个零,那么被除数就舍弃后面四位数,所以答案就是:1)

由于b与e是整型(int),整形不包含小数部分,在计算时会把小数部分全部舍弃

所以b的值为1,e的值为1234。

% (取余) 的用法:
int a,b,c,d,e;

a=1%3;
b=1%2;
c=30%90;
d=12345%10000;
e=12345%10;

printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d",a,b,c,d,e);

运行结果


a=1
b=1
c=30
d=2345
e=5

解析:

a=1%3,c=30%90的解析如右 ,1向3取余,1除以3余1。同上30%90=30

1%2 1向2取余 1除以2=0.5,由于是int类型会舍弃小数,所以1/2的值只能是0,所以原来的除数1,还会留下了,所以1%2=1

d=12345%10000,e=12345%10

所以12345除以10000的余数就是:2345,12345除以10,余5

所以 :d=12345%10000=2345,e=12345%10=5

🎇1.7 关系运算符

“==”判断相等
“!=”不等于
“>”大于
“<”小于
“>=”大于等于
“<=”小于等于

关系运算符的结果:判断如果结果是 true(真) 则为 1

判断如果结果是 false(假)则为 0

用法:
int a=7,b=3,c;

a==b        //的值是0,因为a不等于b,所以是false(假),所以值是0
a!=b        //的值是1,a不等于b,判断正确,所以是true(真),所以值是1

🎇1.8 逻辑运算符

逻辑运算是对逻辑量进行的运算,结果只有0或者1

逻辑量关系运算逻辑运算的结果

用代码表示: a大于等于1,小于等于6

a>=1 && a<=6;

逻辑优先级

! > && > ||

短路:
  1. 逻辑运算是自左向右进行的,如果左边的结果已经能够决定结果了,就不会做右边的计算了

  2. 对于&&,左边是false时就不会做右边的运算了

  3. 对于||,左边是true时就不会做右边的运算了

  4. 不要把赋值,包括复合赋值组合进表达式

总体优先级排名:
优先级运算符结合性
1()从左到右
2!± ++ –从右到左(单目的+和-)
3- / %从左到右
4+ -从左到右
5< <= > >=从左到右
6== !=从左到右
7&&从左到右
8
9= += -= *= /= %=从右到左

🎇1.9 位运算符

“&”按位与
“I”按位或
“<<”左移
“>>”右移

🎇1.10 条件运算符:

? : ;

如:


int count=30;

count = (count>20)?count-10:count+10;

意思是如果条件满足,count如果>20;则count-10,否则就是执行count+10

也就是说:当count>20是 真(非零或1) 的时候执行前者,是 假(0) 执行后者

优先级:条件运算符的优先级高于赋值运算符,但是低于**其他运算符

🎇1.11 逗号运算符

逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先级是所有运算符中最低的,所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边的表达式的就留下来作为逗号运算的结果

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

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

相关文章

4.动态SQL(if,choose,where,set,trim,foreach遍历)的使用+$和#的区别

文章目录 动态sql一、动态sql1.if条件判断2、choose、when、otherwise3、where标签4、set标签5、trim标签1)替代where标签效果2) 生成set标签效果 6、foreach迭代遍历1)属性 7.SQL标签-提取重用的SQL代码片段8、bind标签9.MyBatis中${}和#{}的区别: 动态sql 一、动态sql 常见…

React -- useState状态更新异步特性——导致获取值为旧值的问题

useState状态异步更新 问题导致的原因解决办法进一步分析后续遇到的新问题 问题 const [isSelecting, setIsSelecting] useState(false);useEffect(() > {const handleKeyDown (event) > {if (event.key Escape) {if(isSelectingRef){//.......setIsSelecting(!isSele…

js使用proxy代理监听控制事件

本文为proxy代理的实例应用&#xff0c;有关代理的内容可以参考&#xff1a; js语法---理解反射Reflect对象和代理Proxy对象 监听事件 要监听dom元素的事件&#xff0c;我们会采用回调触发的方式来执行操作&#xff0c; 而触发事件的过程很明显是一个异步操作&#xff0c;异…

Oracle中EXIT Statement用于终止循环语句的关键字

Oracle的EXIT Statement是PL/SQL编程语言中用于终止循环语句的关键字。它有两种主要形式&#xff1a;无条件EXIT和条件EXIT WHEN。以下是对Oracle EXIT Statement的详细解释&#xff1a; 1. 无条件EXIT 语法&#xff1a;EXIT; 作用&#xff1a;无条件地终止当前循环。当程序执…

【咨询】企业数字档案馆(室)建设方案-模版范例

导读&#xff1a;本模版来源某国有大型医药行业集团企业数字档案馆&#xff08;室&#xff09;建设方案&#xff08;一期300W、二期250W&#xff09;&#xff0c;本人作为方案的主要参与者&#xff0c;总结其中要点给大家参考。 目录 1、一级提纲总览 2、项目概述 3、总体规…

办公必备——ONLYOFFICE8.1版本桌面编辑器

一、介绍ONLYOFFICE ONLYOFFICE是一款免费的开源办公软件&#xff0c;它可以让你创建、编辑和分享文档、表格和演示文稿。就像微软的Office一样&#xff0c;但它是完全免费的&#xff0c;而且可以在多种设备上使用&#xff0c;包括电脑和手机。它还支持多人同时在线编辑文档&am…

SpringCloud 负载均衡

目录 一、负载均衡 1、问题 2、什么是负载均衡 服务端负载均衡 客户端负载均衡 二、Spring Cloud LoadBalance 1、使用 Spring Cloud LoadBalance 2、负载均衡策略 3、LoadBalancer 原理 一、负载均衡 1、问题 我们来看一下前面写的代码&#xff1a; List<Serv…

抖音矩阵云剪系统saas源码 短视频矩阵获客管理系统

2024抖音矩阵云混剪系统是一款专业的短视频营销管理工具。该系统支持多平台多账号的集中式管理&#xff0c;并实现一键式作品发布功能。它配备了智能标题生成和关键词优化工具&#xff0c;以及排名查询机制&#xff0c;帮助用户提升内容在平台上更好的矩阵管理. 智能剪辑 托管发…

java中 使用数组实现需求小案例

Date: 2024.04.08 18:32:57 author: lijianzhan 需求实现&#xff1a; 设计一个java类&#xff0c;java方法&#xff0c;根据用户手动输入的绩点&#xff0c;从而获取到绩点最高的成绩。 实现业务逻辑的代码块 import java.util.Scanner;public class PointDemo {/*** 需求&…

Python 如何实现数据驱动的接口自动化测试

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 大家在接口测试的过程中&#xff0c;很多时候会用到对CSV的读取操作&#xff0c;本文主要说明Pyt…

【Java]认识泛型

包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型。 除了 Integer 和 Character&#xff0c; 其余基本类型的包装类都是首字母大写。 泛型 泛型是在JDK1.5引入的…

spring boot 3.x版本中集成spring security 6.x版本进行实现动态权限控制解决方案

一、背景 最近在进行项目从jdk8和spring boot 2.7.x版本技术架构向jdk17和spring boot 3.3.x版本的代码迁移&#xff0c;在迁移过程中&#xff0c;发现spring boot 3.3.x版本依赖的spring security版本已经升级6.x版本了&#xff0c;语法上和spring security 5.x版本有很多地方…

AntV X6 图编辑引擎速通

前言&#xff1a;参考 [AntV X6 官网](https://x6.antv.antgroup.com/) 一、简介 X6 可以快速搭建 DAG 图、ER 图、流程图、血缘图等应用。 二、快速上手 1. 安装 npm install antv/x6 --save# oryarn add antv/x6# orpnpm add antv/x6 2. 使用 2.1 初始画布 在页面中创…

【Linux进阶】文件系统3——目录树,挂载

前言 在Windows 系统重新安装之前&#xff0c;你可能会事先考虑&#xff0c;到底系统盘C盘要有多大容量&#xff1f;而数据盘D盘又要给多大容量等&#xff0c;然后实际安装的时候&#xff0c;你会发现其实C盘之前会有个100MB的分区被独立出来&#xff0c;所以实际上你就会有三个…

Java进阶----继承

继承 一.继承概述 继承是可以通过定义新的类&#xff0c;在已有类的基础上扩展属性和功能的一种技术. 案例&#xff1a;优化 猫、狗JavaBean类的设计 狗类&#xff1a;Dog 属性&#xff1a;名字 name&#xff0c;年龄 age 方法&#xff1a;看家 watchHome()&#xff0c;Gett…

QT5.12.9 通过MinGW64 / MinGW32 cmake编译Opencv4.5.1

一、安装前准备&#xff1a; 1.安装QT,QT5.12.9官方下载链接&#xff1a;https://download.qt.io/archive/qt/5.12/5.12.9/ QT安装教程&#xff1a;https://blog.csdn.net/Mark_md/article/details/108614209 如果电脑是64位就编译器选择MinGW64&#xff0c;32位就选择MinGW…

C#描述-计算机视觉OpenCV(5):直方图算法

C#描述-计算机视觉OpenCV&#xff08;5&#xff09;&#xff1a;直方图算法 前文链接图像直方图灰度直方图的计算灰度直方图的绘制BGR三通道的直方图直方图的均衡化算法相似图像检测 前文链接 文中没提到的东西&#xff0c;很可能都在前文描述过 C#描述-计算机视觉OpenCV&…

【C++深度探索】继承机制详解(二)

hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff1a;大耳朵土土垚的博客 &#x1…

深入解析:抖音视频标题的Python爬虫提取方法

引言 随着短视频的兴起&#xff0c;抖音已经成为全球最受欢迎的社交媒体平台之一。对于数据分析师、市场研究人员以及内容创作者来说&#xff0c;能够从抖音上抓取数据是一项宝贵的技能。本文将深入解析如何使用Python编写爬虫程序来提取抖音视频的标题。 爬虫基础 在开始编…

K8S 上部署大数据相关组件

文章目录 一、前言二、Redis 一、前言 Artifact Hub 是一个专注于云原生应用的集中式搜索和发布平台。它旨在简化开发者在 CNCF&#xff08;Cloud Native Computing Foundation&#xff09;项目中寻找、安装和分享包与配置的过程。用户可以通过这个平台方便地发现、安装各类云原…