10.22学习

1.求余

在C语言中,求余操作是通过取模运算符  %  来实现的。取模运算符会返回两个数相除后的余数。对于正数和负数的除法,求余的结果会有所不同,但  %  运算符总是返回被除数的符号。

下面是一个简单的例子,展示如何使用  %  运算符来求一个数除以另一个数的余数:

#include <stdio.h>

int main() {

int dividend = 153456; // 被除数

int divisor = 10000; // 除数,假设我们要得到万位的余数

 

int remainder = dividend % divisor; // 求余数

 

printf("余数是:%d\n", remainder);

 

return 0;

}

在这个例子中, 153456 % 10000  会计算 153456 除以 10000 的余数,结果是 5456。这意味着 153456 除以 10000 后,余下 5456。

如果你想获取一个数的万位数字,你可以这样做:

#include <stdio.h>

int main() {

int number = 153456; // 假设我们要处理的数字是153456

 

// 首先确保数字是正数

if (number < 0) {

number = -number;

}

 

// 然后通过连续除以10的幂来获取万位数字

int tenThousand = number / 10000; // 获取万位数字

 

printf("万位数字是:%d\n", tenThousand);

 

return 0;

}

在这个例子中,我们通过将数字除以  10000  来获取万位数字。这种方法适用于获取任何位数的数字,只需要将数字除以相应的10的幂即可。例如,要获取千位数字,可以将数字除以  1000 ;要获取百位数字,可以将数字除以  100 ,以此类推。

 

2.复合赋值运算符

在C语言中,复合赋值运算符是一种将赋值和另一个运算结合在一起的运算符。它们提供了一种简洁的方式来更新变量的值。复合赋值运算符包括:

1.  += :将右侧的值加到左侧变量的当前值上,并将结果赋值给左侧变量。

2.  -= :将右侧的值从左侧变量的当前值中减去,并将结果赋值给左侧变量。

3.  *= :将左侧变量的当前值与右侧的值相乘,并将结果赋值给左侧变量。

4.  /= :将左侧变量的当前值除以右侧的值,并将结果赋值给左侧变量。

5.  %= :将左侧变量的当前值除以右侧的值,并取余数,将结果赋值给左侧变量。

6.  <<= :将左侧变量的当前值左移右侧指定的位数,并将结果赋值给左侧变量。

7.  >>= :将左侧变量的当前值右移右侧指定的位数,并将结果赋值给左侧变量。

8.  &= :对左侧变量的当前值和右侧的值进行按位与操作,并将结果赋值给左侧变量。

9.  ^= :对左侧变量的当前值和右侧的值进行按位异或操作,并将结果赋值给左侧变量。

10.  |= :对左侧变量的当前值和右侧的值进行按位或操作,并将结果赋值给左侧变量。

复合赋值运算符的一般形式是: 变量 op= 表达式 ,其中  op  是上述运算符之一。

例如,假设我们有一个变量  a ,其初始值为10,我们想将其增加5,可以使用  +=  运算符:

int a = 10;

a += 5; // 等同于 a = a + 5;

printf("%d\n", a); // 输出 15

复合赋值运算符的用途在于简化代码,使得代码更加简洁和易于阅读。它们在循环和条件语句中特别有用,因为它们可以减少代码的复杂性,并且可以提高代码的执行效率,因为它们通常只需要一次操作而不是两次(一次赋值和一次运算)。

 

3.增一和减一运算符

在C语言中,增一( ++ )和减一( -- )运算符用于将变量的值增加1或减少1。这两个运算符可以作为前缀(prefix)或后缀(suffix)使用,区别在于它们对变量值的修改时机以及表达式的结果值。

增一运算符( ++ )

1. 前缀形式( ++var ):在使用变量的值之前先将其增加1。

表达式的值是增加后的变量值。

变量的值在使用之前就被增加了。

2. 后缀形式( var++ ):在使用变量的值之后将其增加1。

表达式的值是增加前的变量值。

变量的值在使用之后才被增加。

减一运算符( -- )

1. 前缀形式( -var ):在使用变量的值之前先将其减少1。

表达式的值是减少后的变量值。

变量的值在使用之前就被减少了。

2. 后缀形式( var-- ):在使用变量的值之后将其减少1。

表达式的值是减少前的变量值。

变量的值在使用之后才被减少。

示例

#include <stdio.h>

 

int main() {

int a = 5;

int b = 5;

 

// 前缀形式的增一运算符

printf("前缀形式:%d\n", ++a); // 输出 6,a 的值变为 6

 

// 后缀形式的增一运算符

printf("后缀形式:%d\n", b++); // 输出 5,b 的值在表达式求值后变为 6

 

// 前缀形式的减一运算符

printf("前缀形式:%d\n", --a); // 输出 5,a 的值变为 5

 

// 后缀形式的减一运算符

printf("后缀形式:%d\n", a--); // 输出 5,a 的值在表达式求值后变为 4

 

return 0;

}

在实际编程中,选择前缀还是后缀形式取决于你的具体需求。如果你需要在操作之前使用新的值,使用前缀形式;如果你需要在操作之前使用旧的值,使用后缀形式。此外,前缀形式通常在性能上更优,因为它们不需要额外的内存来存储变量的旧值。

 

4.算术运算符

在C语言中,增一( ++ )和减一( -- )运算符用于将变量的值增加1或减少1。这两个运算符可以作为前缀(prefix)或后缀(suffix)使用,区别在于它们对变量值的修改时机以及表达式的结果值。

增一运算符( ++ )

1. 前缀形式( ++var ):在使用变量的值之前先将其增加1。

表达式的值是增加后的变量值。

变量的值在使用之前就被增加了。

2. 后缀形式( var++ ):在使用变量的值之后将其增加1。

表达式的值是增加前的变量值。

变量的值在使用之后才被增加。

减一运算符( -- )

1. 前缀形式( -var ):在使用变量的值之前先将其减少1。

表达式的值是减少后的变量值。

变量的值在使用之前就被减少了。

2. 后缀形式( var-- ):在使用变量的值之后将其减少1。

表达式的值是减少前的变量值。

变量的值在使用之后才被减少。

示例

#include <stdio.h>

 

int main() {

int a = 5;

int b = 5;

 

// 前缀形式的增一运算符

printf("前缀形式:%d\n", ++a); // 输出 6,a 的值变为 6

 

// 后缀形式的增一运算符

printf("后缀形式:%d\n", b++); // 输出 5,b 的值在表达式求值后变为 6

 

// 前缀形式的减一运算符

printf("前缀形式:%d\n", --a); // 输出 5,a 的值变为 5

 

// 后缀形式的减一运算符

printf("后缀形式:%d\n", a--); // 输出 5,a 的值在表达式求值后变为 4

 

return 0;

}

在实际编程中,选择前缀还是后缀形式取决于你的具体需求。如果你需要在操作之前使用新的值,使用前缀形式;如果你需要在操作之前使用旧的值,使用后缀形式。此外,前缀形式通常在性能上更优,因为它们不需要额外的内存来存储变量的旧值。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

前言 &#x1f31f;&#x1f31f;本期讲解关于TCP/UDP协议的原理理解~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不多说…

自动化测试与敏捷开发的重要性

敏捷开发与自动化测试是现代软件开发中两个至关重要的实践&#xff0c;它们相互补充&#xff0c;共同促进了软件质量和开发效率的提升。 敏捷开发的重要性 敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法。它强调以下几个核心价值观和原则&#xff1a; 个体和交互…

项目管理软件真的能让敏捷开发变得更简单吗?

敏捷开发是一种以快速交付和适应变化为核心特点的软件开发方法。其特点包括尽早并持续交付、能够驾驭需求变化、版本周期内尽量不加任务、业务与开发协同工作、以人为核心、团队配置敏捷等。 例如&#xff0c;尽早并持续交付可使用的软件&#xff0c;使客户能够更早地体验产品…

西安周边环境最好的楼宇(园区)

西安&#xff0c;这座历史悠久的城市&#xff0c;如今正焕发着新的生机与活力。在西安周边&#xff0c;各种现代化楼宇和产业园区如雨后春笋般涌现&#xff0c;而其中最引人注目的&#xff0c;当属西安国际数字影像产业园。 西安国际数字影像产业园不仅地理位置优越&#xff0…

在Debian上安装向日葵

说明&#xff1a; 因为之前服务器上安装了 PVE (Proxmox VE)&#xff0c;之前是用 Proxmox VE 进行服务器资源管理的。出于某些原因&#xff0c;现在不再通过 PVE构建的虚拟机来使用计算资源&#xff0c;而是通过 PVE 自带的 Debian 系统直接使用虚拟机资源&#xff08;因为积…

MySQL实现主从同步

一、首先我们准备3台mysql 分别为&#xff1a; 主服务器&#xff1a;test-mysql-master,端口3306 从服务器&#xff1a;test-mysql-slave1,端口3307 从服务器&#xff1a;test-mysql-slave2,端口3308 注意&#xff1a;如果防火墙是开着的记得把关掉&#xff0c;并且重启docker…

Wordpress GutenKit 插件 远程文件写入致RCE漏洞复现(CVE-2024-9234)

0x01 产品简介 GutenKit 是一个WordPress的页面构建器,在 Gutenberg 设计您的下一个 WordPress 网站。借助 Gutenberg 的原生拖放界面、50+ WordPress 块、14+ 多功能模块和 500+ 模板,您可以在几分钟内创建专业、响应迅速的 Web 内容。 0x02 漏洞概述 Wordpress GutenKit…

【计网】理解TCP全连接队列与tcpdump抓包

希望是火&#xff0c;失望是烟&#xff0c; 生活就是一边点火&#xff0c;一边冒烟。 理解TCP全连接队列与tcpdump抓包 1 TCP 全连接队列1.1 重谈listen函数1.2 初步理解全连接队列1.3 深入理解全连接队列 2 tcpdump抓包 1 TCP 全连接队列 1.1 重谈listen函数 这里我们使用…

SQL Injection | MySQL 手工注入全流程

0x01&#xff1a;MySQL 手工注入 —— 理论篇 手工注入 MySQL 数据库&#xff0c;一般分为以下五个阶段&#xff0c;如下图所示&#xff1a; 第一阶段 - 判断注入点&#xff1a; 在本阶段中&#xff0c;我们需要判断注入点的数据类型&#xff08;数字型、字符型、搜索型、XX 型…

【C++、数据结构】二叉排序树(二叉查找树、二叉搜索树)(图解+完整代码)

目录 [⚽1.什么是二叉排序树] [&#x1f3d0;2.构建二叉排序树] [&#x1f3c0;3.二叉排序树的查找操作] [&#x1f94e;4.二叉排序树的删除] [&#x1f3b1;5.完整代码] ⚽1.什么是二叉排序树 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是…

Java避坑案例 - 消除代码重复_模板方法与工厂模式的最佳实践

文章目录 需求基础实体类BadVersion优化&#xff1a; 利用工厂模式 模板方法模式&#xff0c;消除 if…else 和重复代码优化一&#xff1a; 模板方法的应用AbstractCart 类&#xff08;抽象类&#xff09;各种购物车实现&#xff08;继承抽象类&#xff09;普通用户购物车 (No…

【JavaScript】Javascript基础Day02:运算符、分支、循环

Javascript——Day02 01. 赋值运算符02. 自增运算符03. 比较运算符04. 逻辑运算符以及优先级05. if单分支语句06. if双分支语句07. if多分支语句08. 三元运算符09. 数字补0案例10. switch分支语句11. 断点调试12. while循环13. 退出循环 01. 赋值运算符 02. 自增运算符 03. 比较…

【java】抽象类和接口(了解,进阶,到全部掌握)

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 大家好我们今天来学习Java面向对象的的抽象类和接口&#xff0c;我们大家庭已经来啦~ 一&#xff1a;抽象类 1.1:抽象类概念 在面向对象的概念中…

Python|基于Kimi大模型,实现上传文档并进行“多轮”对话(7)

前言 本文是该专栏的第7篇,后面会持续分享AI大模型干货知识,记得关注。 假设有这样的需求,需要你通过python基于kimi大模型,上传对应的文档并根据对应的prompt提示词,进行多轮对话。此外,还需要将kimi大模型生成的内容进行存储。具体场景,如下图所示: 也就是说,当我们…

这种V带的无极变速能用在新能源汽车上吧?

CVT的无极变速器的结构能用在电动汽车上吗&#xff1f;

【优选算法篇】在分割中追寻秩序:二分查找的智慧轨迹

文章目录 C 二分查找详解&#xff1a;基础题解与思维分析前言第一章&#xff1a;热身练习1.1 二分查找基本实现解题思路图解分析C代码实现易错点提示代码解读 1.2 在排序数组中查找元素的第一个和最后一个位置解题思路1.2.1 查找左边界算法步骤&#xff1a;图解分析C代码实现 1…

LeetCode94:二叉树的中序遍历

文章目录 &#x1f60a;1.题目&#x1f609;2.解法1.递归2.迭代 &#x1f60a;1.题目 尝试一下该题 &#x1f609;2.解法 1.递归 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* …

企业级 RAG 全链路优化关键技术

2024 云栖大会 - AI 搜索企业级 RAG 全链路优化关键技术 在2024云栖大会上&#xff0c;阿里云 AI 搜索研发负责人之一的邢少敏先生带领大家深入了解如何利用 RAG 技术优化决策支持、内容生成、智能推荐等多个核心业务场景&#xff0c;为企业数字化转型与智能化升级提供强有力的…

【Linux】了解pthread线程库,清楚并没有线程创建接口,明白Linux并不存在真正意义的线程(附带模型图详解析)

前言 大家好吖&#xff0c;欢迎来到 YY 滴Liunx系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

ECHO-GL:盈利电话驱动的异质图学习股票 走势预测

目录 简单概括1 背景知识相关的工作图学习在股票预测中的应用股票预测中的收益电话会议 方法异质股票图结构建造时间分配机制滑动窗机构库存空间关系模块异构边缘类型消息传递音频引导的注意聚合财报电话会议后股票动态模块预测和优化 实验消融研究 (for Q2)模拟交易 (for Q3) …