cout是右结合的,(从右到左压栈?)
cout<<++a<<","<<a++; 
的运行顺序是
1.a的值压栈
2.a自加
3.‘,’压栈
4.a自加
5.a的值压栈
6.输出栈中元素

int a[] = {1,3,5,7,9};
 int * p = a;
 cout<<a<<endl;

cout<<p<<" "<<*p<<endl;            ----  1

cout<<p<<" ";cout<<*p++<<endl; ---   1 ,   p--3

cout<<p<<" "<<*p++<<endl;        ---   3 ,   p--5

cout<<p<<" "<<*++p<<endl;        ---   p--7  ,   7

cout<<p<<" "<<(*p)++<<endl;      ---   7   ,    7+1;

cout<<p<<" "<<*p++<<endl;     - ----  8  ,   p--9;

结果:
0x0012FF6C
0x0012FF6C 1
0x0012FF6C 1
0x0012FF74 3
0x0012FF78 7
0x0012FF78 7
0x0012FF7C 8
Press any key to continue

cout是右结合的的更多相关文章

  1. C/C++---printf/cout 从右至左压栈顺序实例详解

    __cdecl压栈顺序实例 明白计算:计算是从右到左计算的 栈和寄存器变量:x++,是将计算结果存放到栈空间,最后是要出栈的:而++x和x是将计算结果直接存放到某个寄存器变量中(是同一个),所以计算完 ...

  2. cout中的执行顺序_a++和++a

    printf和cout从右到左计算: int main() { /* char* str = NULL; setmemory(&str, 100); strcpy(str, "hel ...

  3. 透彻理解C++11新特性:右值引用、std::move、std::forward

    目录 浅拷贝.深拷贝 左值.右值 右值引用类型 强转右值 std::move 重新审视右值引用 右值引用类型和右值的关系 函数参数传递 函数返还值传递 万能引用 引用折叠 完美转发 std::forw ...

  4. C++11 左值引用和右值引用与引用折叠和完美转发

    1.左值与右值 最感性的认识. 当然,左值也是可以在右边的. 左值是可以被修改的,右值不能. 当然取地址也是. 生存周期一般左值会比右值的长,一般右值都计算时产生的无名临时对象,存在时间比较短. 下面 ...

  5. 30道四则运算<2>

    #include<iostream> #include<time.h> #include<fstream> #define random() (rand()%100 ...

  6. cpp(第八章)

    1. #include <iostream> inline int add(int &n) { n= n+; ; } int main() { using namespace st ...

  7. 树和二叉树的存储结构的实现(C/C++实现)

    存档: #include <iostream.h> #include <stdio.h> #include <stdlib.h> #define max 20 ty ...

  8. C++ 运算符重载三(链式编程)

    //运算符重载之链式编程 #include<iostream> using namespace std; //对于友元函数重载运算符只适用于左操作数是系统变量的场景 //因为成员无法在系统 ...

  9. 移动构造和移动赋值与std::move

    ------------------------------------移动构造------------------------------------------ 传统的深拷贝深赋值 对于类中,含有 ...

随机推荐

  1. 将Xcode升级到10.0以上版本,Appium启动报错的问题

    前言 现在的Xcode最新版本都是在10.1,原先使用的版本是9.4.1!结果今天手贱将其升级... 然后,跑IOS自动化时,出现“Xcode version '0.1'. Support for X ...

  2. JQ多种刷新方式

    下面介绍全页面刷新方法:有时候可能会用到 window.location.reload()刷新当前页面. parent.location.reload()刷新父亲对象(用于框架) opener.loc ...

  3. 用代码构造PreferenceScreen

    在PreferenceFregment中构造界面,简单省事的方法就是使用findPreference然后在xml里把UI写好.在代码中动态的添加UI内容也是需要的.核心代码是: PreferenceS ...

  4. 很全的php数组操作方法

    一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...

  5. Linq系列(7)——表达式树之ExpressionVisitor

    大家好,由于今天项目升级,大家都在获最新代码,所以我又有时间在这里写点东西,跟大家分享. 在上一篇的文章中我介绍了一个dll,使大家在debug的时候可以可视化的看到ExpressionTree的Bo ...

  6. 也谈在 .NET 平台上使用 Scala 语言(续)

    而我是在 Ubuntu 操作系统中使用 Scala.NET 的,应该没有这个问题. 那么,就让我们来測试一下吧. 如今,我们添加一个 DotNet.cs 文件,例如以下所看到的: 1 2 3 4 5 ...

  7. 打字母的游戏&Java入门

    目标: 在一个窗体上随机掉落字母,通过键盘输入,敲对后消除并且累计积分,否则扣除一定积分. 具体内容: 画一个窗体——>产生随机字母——>接受键盘输入——>显示分数 代码: pack ...

  8. 【BZOJ4537】[Hnoi2016]最小公倍数 分块

    [BZOJ4537][Hnoi2016]最小公倍数 Description 给定一张N个顶点M条边的无向图(顶点编号为1,2,…,n),每条边上带有权值.所有权值都可以分解成2^a*3^b的形式.现在 ...

  9. Windows下oracle-win-64-11g安装步骤

    一. Oracle 下载 官方下地址 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htm ...

  10. Generally a good method to avoid this is to randomly shuffle the data prior to each epoch of training.

    http://ufldl.stanford.edu/tutorial/supervised/OptimizationStochasticGradientDescent/