首先需要明确一个概念,就是*p++与(*p)++的区别。

*p++:对p取值,然后对p指针增加。

(*p)++:对p取值,然后对值增加。

++a:表示取a的地址,对a的值进行增加,然后把这个值放入寄存器。结果可以作为左值。

实现代码如下:

// return a reference that means this value can be a left-value.
int& int::operator++() {// the empty param means add one in itself space.// plus one.        *this += 1;// return value.return *this;
}

a++:表示取a的地址,把这个值放入寄存器,然后对内存中的a值进行增加。

实现代码如下:

// the return value is not a left-value.
const int int::operator(int) {// the param is existed that means the param occupy space.// set old value.int oldValue = *this;// plus one in origin value.++(*this);// return old value.return oldValue;
}

转载于:https://www.cnblogs.com/immjc/p/7991515.html

[C++] 前置++与后置++相关推荐

  1. [C++再学习系列] 前置++与后置++

    前置++: type operator++(); 后置++: const type operator++(int ); 为了编译器区分前置和后置++,C++规定后缀形式有一个int类型参数,当函数被调 ...

  2. JavaScript运算符:递增递减运算符前置和后置的区别

    从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(n ...

  3. # c++运算符重载之 前置++, 后置++, 负号运算符, 类型转换函数, 以及输入输出运算符...

    c++运算符重载之 前置++, 后置++, 负号运算符, 类型转换函数, 以及输入输出运算符 标签(空格分隔): c++ 前言 我在c++学习的过程中, 对这几个不太常见的运算符重载不太会写.出现了很 ...

  4. c语言前置函数,C语言高级编程-函数前置与后置调用

    / linux gcc下测试通过(有Bug请提交) 使用本代码需要注名作者: fqheda 本代码遵循GPL V3.0标准,可免费使用-- 函数前置与后置调用 注解:在同一个.c中,一个函数A调用另一 ...

  5. PHP通过__call实现简单的AOP(主事务后的其他操作)比如前置通知,后置通知

    /*** person class*/ class Person {/*** person class -> function say*/public static function say($ ...

  6. (转)前置++和后置++的区别

    今天在阅读<google c++ 编程风格>的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理 ...

  7. 前置++与后置++之一道简单的题目引发的思考

    引言 昨晚一时兴起,我脑子就问自己下面的代码会输出什么,也不知道我脑子为什么有这个代码模型,只是模糊的有些印象: #include <stdio.h> #include <stdli ...

  8. C++之运算符重载(前置++和后置++)

    今天在阅读<google c++ 编程风格>的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理 ...

  9. 使用匿名函数动态设置前置或者后置操作(装饰器模式的)

    我的个人博客:逐步前行STEP 在维护另一个同事的代码时,由于代码量比较大而且封装程度低耦合高,维护起来不太顺手,就怕哪没注意把现有的逻辑改坏了,受到laravel-admin的保存回调功能的启发,想 ...

  10. 前置++与后置++的要点分析

    前置++和后置++,都是自增1,但是表达式返回值不同.执行效率上前置++更快. 前置++返回是自增之后的值. 等价于num+=1; rerurn num; 后置++返回的是自增之前的值. 等价于  i ...

最新文章

  1. 【iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决(2016 12 15 更新)...
  2. PHP中几种加密形式
  3. SAP Spartacus CMS Component的lazy loading懒加载方式
  4. mysql时间排序_mysql – 按日期和时间降序排序?
  5. 为什么年轻人挣得很多还是穷?北上广深挑战指数报告~
  6. arcgis栅格邻域统计_地理工具学习--arcgis篇:单工具学习(14)
  7. nginx php 扩展,源码安装Nginx+PHP-FPM及扩展
  8. 大数据分析应用在哪些方面
  9. 持续集成学习总结(三)
  10. livereload
  11. CAD的dwg格式转换为PDF
  12. C语言——计算标准差公式
  13. 彻底禁用Microsoft Compatibility telemetry
  14. win10系统怎样彻底关闭更新
  15. 跟相亲对象微信聊什么?聊天绝学四步走一试便知有没有
  16. Java最新面试题及答案
  17. MVC5 + EF6 + Bootstrap3 (9) HtmlHelper用法大全(下)
  18. leetcode每日一题1219. 黄金矿工 DFS深搜 暴力AC 正月初五祝大家财源广进~
  19. 异常处理——NullPointerException
  20. 物联网开发笔记(80)- 使用Micropython开发ESP32开发板之通过IIC接口控制TM1650四位共阴数码管模块

热门文章

  1. (转)最临近插值-双线性插值算法原理
  2. json数据格式基础知识
  3. Java基础----泛型
  4. 人类赋予人工智能伦理,生物进化方向的突破是关键【刘锋博士南科大发言】
  5. 清理操作系统垃圾批处理文件
  6. ArcGIS制图表达Representation实战篇3-控制点
  7. AIR Android开发--APK结构详解
  8. 使用AIR中的File对象
  9. elementUI中复选框checkbox的使用
  10. mysql 变量赋值 in_MySQL 存储过程传参数实现where id in(1,2,3,...)实例效果