讲*和++同时用于指针时提出了这样的问题:将什么解除引用,将什么递增。

double arr[]={21.1, 32.8, 23.4, 45.2, 37.4 };
double *pt=arr;    //pt指针指向arr[0] 值为 21.1
++pt; //pt指针指向arr[1] 值为 32.8

前缀运算符的从右到左结合规则意味着

*++p 的含义如下:

  先将++应用于pt(因为++位于*的右边)然后将*应用于被递增后的pt--》指针递增

double x=*++pt; //指针+1,指向arr[2] 值为23.4

++*pt 的含义如下:

  意味着先取得pt指向的值,然后将这个值再加一 ---》指向的值递增

++*pt; //指向的值+1   23.4+1=24.4

(*pt)++ 的含义如下:

  圆括号指出,首先对指针解除引用,得到24.4.然后,运算符++将这个值递增到25.4,pt仍指向arr[2]

(*pt)++; 

*p++ 的含义如下:

x=* pt++;

  后缀运算符++的优先级更高,这意味着将运算符用于pt,而不是*pt,因此对指针递增。

  然而后缀运算符意味着将对原来的地址(&arr[2])而不是递增后的新地址解除引用,因此*pt++的值为arr[2],即25.4,

  但该语句执行完毕后,pt的值将为arr[3]的地址。

#include "stdafx.h"
#include <iostream>
int main()
{
using namespace std;
double arr[]={21.1, 32.8, 23.4, 45.2, 37.4};
double *pt=arr;
++pt;
int a;
double x;
cout<<*++pt<<endl;
cout<<++*pt<<endl;
cout<<(*pt)++<<endl;
cout<<*pt++<<endl;
x=*pt++;
cout<<x<<endl;
cin>>a;
}

注意:指针递增和递减都遵循指针的运算规则,如果pt指向某个数组的第一个元素,++pt将修改pt的值(第一个元素),并指向第二个元素地址(第二个元素值不变)

【原创】一起学C++ 之指针的--/++ ---------C++ primer plus(第6版)的更多相关文章

  1. 【原创】一起学C++ 之指针、数组、指针算术 ---------C++ primer plus(第6版)

    C++ Primer Plus 第6版 指针和数组基本等价的原因在于指针算术! 一.指针 ⑴整数变量+1后,其值将增加1: ⑵指针变量+1后,增加的量等于它指向的类型的字节数: ⑶C++将数组名解析为 ...

  2. 【原创】一起学C++ 之->(箭头符号) ---------C++ primer plus(第6版)

    1.C++新手在指定结构成员时,不知道何时用.运算符,何时是用->运算符. 结论:如果结构标识符是结构名,则使用句点运算符:如果标识符是指向结构的指针,则使用箭头运算符. #include &l ...

  3. HTML5移动开发即学即用(双色) 王志刚 pdf扫描版​

    HTML5已经广泛应用于各智能移动终端设备上,而且绝大部分技术已经被各种最新版本的测览器所支持:逐一剖析HTML5标准中包含的最新技术,详细介绍了HTML5新标准中提供的各种API,各种各样的应用实例 ...

  4. 没事抽空学——c语言指针操作基础概念

    指针基础 理解指针的最佳方法是画图,学习使用基本指针,不要产生空指针. 存储控件分配 存储控件分配是指在内存预留空间的过程.就像一个虚拟菜谱一样,指针对应菜名,其所指的内存空间中的数据对应实际的菜. ...

  5. 【原创】一起学C++ 之 字符串 ---------C++ primer plus(第6版)

    C++ Primer Plus 第6版 字符串:是存储在内存的连续字节中的一系列字符. C++处理字符串的方式有2种: 一.来自C语言.常被称为C-风格字符串(C-Style-string) 1)从字 ...

  6. 【原创】一起学C++ 之enum ---------C++ primer plus(第6版)

    枚举 定义:在默认情况下讲整数值赋给枚举量,第一个枚举量的值为0,第二个枚举量的值为1,依次+1 一.定义一个枚举,枚举类型,枚举量 *与C#相比个人认为C++的enum不好一点是不能通过枚举名点其中 ...

  7. [网络必学]TCP/IP四层模型讲解【笔记整理通俗易懂版】

    OSI七层模型     表示层:用来解码不同的格式为机器语言,以及其他功能. 会话层:判断是否需要网络传输. 传输层:识别端口来指定服务器,如指定80端口的www服务. 网络层:提供逻辑地址选路,即发 ...

  8. 《C++ Primer》学习笔记 :命名空间的using声明

    最近在学C++,在<C++ Primer>第五版的3.1节中说到使用using声明来使用命名空间中的成员,<C++ Primer>中这样写道: 有了using声明就无须专门的前 ...

  9. Qt笔记-const-虚函数-元对象系统

    const与指针 摘自C++ Primer Plus (第五版) 中文版 const(常量): const变量的地址可以给指向const的指针,但不能指向常规类型的指针: const float a= ...

随机推荐

  1. Android 高级UI设计笔记07:RecyclerView 的详解

    1. 使用RecyclerView       在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常 ...

  2. U盘安装Debian 7

    网上看到好多使用U盘安装的教程,齐说不一.实践是检验真理的标准,Try it ! 下载系统镜像:http://cdimage.debian.org/cdimage/release/current/am ...

  3. Volly的使用及图片错位优化

    listview显示数据,利用第三方jar包Volley下的ImageLoader加载图片时,当数据类型不一致,布局复用的时候会出现图片错位,因此需要自定义IMymageLoader实现ImageLo ...

  4. Centos6.4最小化安装后使用xfce桌面环境

    由于我个人使用的Centos是在虚拟机中最小化安装的,gnome实在是不喜欢,所以自己装了个xfce,安装后启动不起来,才发现x window等依赖环境没装,为了少走弯路,在此写下安装过程. 1.yu ...

  5. IE Firefox Safari 下 通过Div“隐藏”设置Accesskey的submit input

    实现效果: 进入页面后 通过快捷键  如Alt+C 调用相关的隐藏按钮 实现功能操作 正常情况下 设置 button => input type="submit" acces ...

  6. Delphi7使用ADO直接连接Excel读取数据

    我之前是连接成功的,现在不知道为什么怎样连都失败.最后才知道是Office版本的问题,office2007已经是基于xml的.和以前的不一样. Excel2003的连接字符串: 'Provider=M ...

  7. JAVA HttpsURLConnection 忽略对SSL valid 的验证

    有时候我们对https进行测试的时候,经常自签署一个证书给server,这个certificate经常是不能通过验证的,但是我们又要用这个https,所以我们经常来忽略对SSL validation的 ...

  8. 和阿文一起学H5--设计稿尺寸全攻略

  9. Commons-logging + Log4j

    一.Commons-logging能帮我们做什么? 1.提供一个统一的日志接口,简单了操作,同时避免项目与某个日志实现系统紧密耦合 2.自动选择适当的日志实现系统 a.classpath下查找comm ...

  10. 笔试面试题-寻找Coder

    请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回.结果字符串的顺序按照"Coder"出现的次 ...