两种表示方法经常容易混淆, 在这里将利用演示程序来揭示两者之间的区别, 演示代码如下

int main()
{
int a = ;
cout << "a=1 " << "a++: " << a++ << " 此时a= " << a << endl;
a = ;
cout << "a=1 " << "++a: " << ++a << " 此时a= " << a << endl; system("pause");
return ;
}

最终结果如下:

a=1 a++: 1 此时a=2
a=1 ++a: 2 此时a=2

显然, a++ 与 ++a 均是对a自身的自加运算, 就改变a的值来讲, 二者效果相同; 但是, 两者算式的值却不相同(a++)的值保持为原先a的值, 而(++a)的值随着a的值一起变化加一. 下面, 我们来看这两个式子的值具体在怎么变化;

代码如下:

int main()
{
int a = ;
cout << "a=1 " << "a++=" << a++ << "; 此时a=" << a << endl;
cout << "此时a=" << a;cout<< "二次a++=" << a++ << "; 此时a=" << a << endl << endl; a = ;
cout << "a=1 " << "++a=" << ++a << "; 此时a=" << a << endl;
cout << "此时a=" << a;cout<< "二次++a=" << ++a << "; 此时a=" << a << endl; system("pause");
return ;
}

运行结果如下:

a=1 a++=1; 此时a=2
此时a=2二次a++=2; 此时a=3

a=1 ++a=2; 此时a=2
此时a=2二次++a=3; 此时a=3

结果与我们想的一致, a++是对a变量值的引用, 始终与该式之前a的值一致; 而++a本身就是对a自增的引用, 结果与该式之后的a保持一致.

"a++" 与 "++a" 的区别-演示的更多相关文章

  1. Delphi_07_Delphi_Object_Pascal_基本语法_05_函数参数

    这里主要讨论Delphi中函数.方法的相关内容. 一.工程文件 { Delphi语法方法和函数 1.方法 2.函数 } program Routine; {$APPTYPE CONSOLE} uses ...

  2. Oralce开窗函数OVER()的一些应用

    好久没用oracle了,发现很多东西已经忘记.正好今天改写个语句,顺便回忆了一下,乘热整理以备遗忘. over(order by salary) 按照salary排序进行累计,order by是个默认 ...

  3. Gradle学习之闭包

    Gradle中的闭包其实就等同于Groovy中闭包,Groovy是一种jvm语言,语法兼容于java,曾几何时,也在脚本语言中独树一帜,初学Gradle的时候,大家很容易被其语法所迷惑,由于Gradl ...

  4. JavaScript的 基本数据类型---对象

    第一:Javascript对象是 第二:Javascript中 第三:Javascript的对象是数据: 第四:JavaScript 中的对象可以简单理解成"名称:值"对(name ...

  5. js之对象(经典)

    一.对象的定义: 对象是JavaScript的一个基本数据类型,是一种复合值,它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值.即属性的无序集合. 二.对象的创建(多种方法) 1.对象 ...

  6. Linux学习笔记(十)shell基础:历史命令、命令补全、输出重定向、输出重定向

    一.历史命令 history [选项] [历史命令保存文件] -c 清空历史命令 -w 吧缓存中的历史命令写入历史命令保存文件~/.bash_history中 系统会默认将上次注销登录(正确退出)之前 ...

  7. JavaScript中的typeof 和instanceof

    Js中的instanceof 和typeof的区别 演示1 var v5=new Number("22"); document.write(typeof v5+"< ...

  8. 代码演示C#中string和StingBuilder内存中的区别

    关于 string和StringBuilder的区别参考MSDN.本文用程序演示它们在内存中的区别,及其因此其行为不同. //Demo  string memory model namespace C ...

  9. [javascript svg fill stroke stroke-width points polygon属性讲解] svg fill stroke stroke-width points polygon绘制多边形属性并且演示polyline和polygon区别讲解

    <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...

随机推荐

  1. Hadoop-No.15之Flume基于事件的数据收集和处理

    Flume是一种分布式的可靠开源系统,用于流数据的高效收集,聚集和移动.Flume通常用于移动日志数据.但是也能移动大量事件数据.如社交媒体订阅,消息队列事件或者网络流量数据. Flume架构 Flu ...

  2. webpack打包工具之ts版开发框架搭建

    本文用两个框架,一个是threejs,一个是phaser3,其实流程都是一样. nodejs.npm是基础,不再多说! 首先新建一个文件夹命名three-study,然后npm init -y 用we ...

  3. VUE路由过度效果vs缓存

    app页面 router.js

  4. 灰度图像--图像分割 Robert算子

    学习DIP第43天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ...

  5. fileReader对象读取txt文件乱码问题 以及如何获取文件的url路径(绝对路径)

    <input type="file" @change="aaa($event)"> <div id="hi">< ...

  6. node链接mongoDB及封装

    // 这个模块中封装所有对数据库的常用操作 const MongoClient = require('mongodb').MongoClient; const assert = require('as ...

  7. JavaWeb-SpringSecurity图片验证ImageCode

    系列博文 项目已上传至guthub 传送门 JavaWeb-SpringSecurity初认识 传送门 JavaWeb-SpringSecurity在数据库中查询登陆用户 传送门 JavaWeb-Sp ...

  8. [题解] [JLOI2013] 卡牌游戏

    题面 题解 概率dp, 应该做得还是比较少的 设\(f[i][j]\)为该圈有\(i\)人时, 第\(j\)个人最后胜利的概率 枚举选择第几张卡牌, 设其值为\(card[k]\), 那么被淘汰的则是 ...

  9. Teamviewer解决许可证授权的问题

    提交商业用途表 https://www.teamviewer.com/zhCN/pricing/commercial-use/

  10. mongodb远程链接命令

    mongo 172.17.0.170:27017/spider_data -u admin -p 然后输入密码 切换数据库 use spider_data 查看所有表 show tables