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. member access within misaligned address 0x000000000031 for type 'struct ListNode', which requires 8 byte alignment

    在做LeetCode的two sum题目的时候,提交代码遇到了如题的runtime error,后来在一篇博客上看到了解决方法. 现有如下结构体: struct ListNode { int val; ...

  2. WPF中的数据模板使用方式之一:ContentControl、ContentTemplate和TemplateSelector的使用

    在WPF中,数据模板是非常强大的工具,他是一块定义如何显示绑定的对象的XAML标记.有两种类型的控件支持数据模板:(1)内容控件通过ContentTemplate属性支持数据模板:(2)列表控件通过I ...

  3. Lumen开发:简单实现auth用户认证

    打开bootstrap/app.php,取消下面两段代码的注释, $app->middleware([ App\Http\Middleware\ExampleMiddleware::class ...

  4. 仿百度壁纸client(五)——实现搜索动画GestureDetector手势识别,动态更新搜索keyword

    仿百度壁纸client(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸client(一)--主框架搭建,自己定义Tab + ViewPager ...

  5. 什么是bin文件?

            知道多问bin文件几个为什么.是在出现下面这个问题时引发的.         出现这种问题:未能载入文件或程序集"DAL"或它的某一个依赖项. 系统找不到指定的文件 ...

  6. 浅谈<持续集成、持续交付、持续部署>(一)

    谈谈持续集成,持续交付,持续部署之间的区别 经常会听到持续集成,持续交付,持续部署,三者究竟是什么,有何联系和区别呢?   假如把开发工作流程分为以下几个阶段: 编码 -> 构建 -> 集 ...

  7. Java 学习 day08

    01-面向对象(多态-概念) package myFirstCode; /* 多态:可以理解为事务存在的多种体现形态. 人:男人,女人 动物:猫,狗 猫 x = new 猫(); 动物 x = new ...

  8. json-lib-2.5-jdk.jar 需要依赖的jar包

    commons-lang3-3.1.jar commons-lang-2.5.jar ezmorph-1.0.6.jar commons-collections-3.2.1.jar commons-b ...

  9. You are using pip version 8.1.2, however version 9.0.1 is available.

    [root@localhost ~]# pip install virtualenvmapperCollecting virtualenvmapper  Could not find a versio ...

  10. JDBC【菜鸟学JAVA】

    1:首先下载sqljdbc.jar,然后配置ClassPath,然后再在工程文件中把这个(sqljdbc.jar)架包引用上,就可以开始JAVA操作之旅了 打开Eclipse,“文件”→“新建”→“项 ...