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

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. python中sys.argv[]用法

    sys.argv[]的作用: 在运行python文件的时候往文件里面传递参数. 从函数外部获取到变量值 import sys arg = sys.argv[0] args = sys.argv[:] ...

  2. macOS Mojave 10.14上安装iTunes12.6

    将一下内容保存为iTunes.scpt,并运行 set question to display dialog "确定是否删除 iTunes ?" buttons {"Ye ...

  3. noip训练 2018.10.22~2018.10.23

    day1 100+100+0=200 T1 稍微比划一下,发现其实就是缩点双,然后区间最小值的和 T2 发现答案为原lis|+1|-1 对每个点做从前最长上升序列以及从后最长下降序列, 想了半个小时怎 ...

  4. debug的基本用法

    1.关于debug debug是dos.windows提供的实模式程序调试工具: 作用:查看cpu各寄存器的内容.内存情况.在机器码级别追踪程序的运行: 命令: debug 参数:     r    ...

  5. 通过远程 HTTP GET 请求载入信息

    jQuery.get(url, [data], [callback], [type]) 概述 通过远程 HTTP GET 请求载入信息. 这是一个简单的 GET 请求功能以取代复杂 $.ajax .请 ...

  6. js获取当前页面url信息

    <html> <head> <meta charset="utf-8" /> <title></title> <s ...

  7. POJ2942Knights of the round table

    这题第一次做的人一般是颓题解的. 首先我们转化一下问题,既然厌恶的人不能一起出席,是一种不传递关系,我们构建补图,这样补图的边表示两个骑士可以同时出席. 此时,由于只能有奇数个人参加,则我们要找出奇环 ...

  8. nvidia-smi 实时刷新 实时显示显存使用情况

    watch -n 0.5 -d nvidia-smi     #每隔0.5秒刷新一次

  9. ubuntu18.04系统桌面很卡 换回16.04桌面

    https://jingyan.baidu.com/article/37bce2bea3c07f1002f3a22a.html

  10. zookeeper系列(八)zookeeper客户端的底层详解

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败.出处:http://www.cnblogs.com/leesf456/p/6098255.html 尊重原创,共同学习进步:  一.前言 ...