++( 自增运算符) 与 --( 自减运算符) 简单说

2024-02-22 07:18
文章标签 简单 运算符 自增 自减

本文主要是介绍++( 自增运算符) 与 --( 自减运算符) 简单说,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    自增运算符“++”与自减运算符“--”都是单目运算符的一种。根据它们所处操作数的位置可以分为前缀和后缀形式,这两种形式在某些情况下产生的效果是一毛一样的。但我们更关心是它们的不同之处,下来就看看它们不同之处的本质区别在哪!

    前缀形式的++操作符出现在操作数的前面。
    例如:   ++a;
    说明: 操作数的值被相加,而表达式的值就是操作数增加后的值

    举例:   int a, b = 1;
            a = ++b;        //b增加至2,a得到的 值为 2

    后缀形式的++操作符出现在操作数的后面。
    例如:   a++;
    说明: 操作数的值仍被相加,而表达式的值是操作数增加前的值

    举例:   int a, b = 1;
            a = b++;        //b增加至2,a得到的值为1

    显然,根据操作符的位置,我们很容易记住这个规则:
    
    在操作数之前的操作符(++b)在变量值在被使用之前增加它的值;在操作数之后的操作符(b++)在变量值被使用之后才增加的值。--操作符的工作原理与此相同,只是它所执行的是减值操作而非增值操作。


     在这里,有些大虾可能就要吐槽了: 说的这些都是老套的东西,我都能背下来了!能不能说些新的、我们不知道知识?

行!行!行!先别喷,我说一个我也是才知道的,大虾可能早就见过了!但我想,我这可能还没那么多的大虾 ^_^  更多的是和我一样的小菜,那我们一起来看看!

    int a = 1;
    ++a = 5;

    首先说明!上面第二行的表达式是有问题的,我来解释一下为什么有问题。

    划重点!
    抽象地说,前缀和后缀形式的增值操作符都复制了一份变量值的拷贝。用于周围表达式的值正是这份拷贝(在上边的例子中,“周围表达式”是指赋值操作)。前缀操作符在进行复制之前增加变量的值,后缀操作符在进行复制之后才增加变量的值。这些操作符的结果不是被它们所修改的变量,而是变量值的拷贝,认识到这一点很重要!

    我们再看这个表达式的错误之处:
    ++a = 5;
    ++a 的结果是a值的拷贝,并不是变量本身,也就是它的结果是一个常量值,你无法向一个值进行赋值


这篇关于++( 自增运算符) 与 --( 自减运算符) 简单说的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/734501

相关文章

Python海象运算符:=的具体实现

《Python海象运算符:=的具体实现》海象运算符又称​​赋值表达式,Python3.8后可用,其核心设计是在表达式内部完成变量赋值并返回该值,从而简化代码逻辑,下面就来详细的介绍一下如何使用,感兴趣... 目录简介​​条件判断优化循环控制简化​推导式高效计算​正则匹配与数据提取​性能对比简介海象运算符

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

C# 空值处理运算符??、?. 及其它常用符号

《C#空值处理运算符??、?.及其它常用符号》本文主要介绍了C#空值处理运算符??、?.及其它常用符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、核心运算符:直接解决空值问题1.??空合并运算符2.?.空条件运算符二、辅助运算符:扩展空值处理

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除