利用指针访问对象,指针指向一个对象,允许使用解引用符(操作符*)来访问对象

int ival = 42;
int *p = &ival;//p存放变量ival的内存地址,p是指向变量ival的指针
cout << *p;//符号*得到指针p所指的对象 对指针解引用会得到所指的对象,给解引用的结果赋值,实际也就是给指针所指对象赋值
*p = 0;//符号*得到指针p所指对象,可经由p为变量ival赋值
*p 操作的是指针指向对象 的内存地址空间,为*p赋值实际是为p所指的对象赋值;
解引用操作适用于确实指向了对象的有效指针
使用字面值nullptr初始化指针
指针初始化为字面值0生成空指针
NULL预处理变量preprocessor variable指针赋值 NULL在变量 cstdlib; 预处理 运行与编译之前预处理变量不属于命名空间Std
C++程序使用nullptr生成申明空指针
*pi 是 对象的值,pi却是对象的内存
int iival = 1024;
int *pi = 0;//pi合法,是一个空指针
int *pi2 = &ival //pi2是一个合法的指针,存放ival值
if(pi) pi 的值 0,因此条件的值是false
if(pi2) pi2指向ival,因为它的值不是0,条件为true;
任何非0指针对应的条件值true
对应两个类型相同的合法指针,== != 操作符 result boolera;
两个指针存储的地址值相同 指针存储的地址值相同都为nullptr;
都指向同一个对象
都指向了同一个对象的
一个指针指向某对象,同时另一个指针指向
同一条定义语句,虽然基本数据类型只有一个,申明符的形式却可以不同,一条定义语句可能定义出不同类型的变量 &r = i 赋值运算符 改变的永远都是左值
r定义多个变量
类型修饰符*& 作用于本次定义的全部变量 可以把空格写在类型修饰符和变量名中间 空格写在类型修饰符和变量名中间 空格写在类型修饰符和变量名中间
int* p;
int *p;
合法但很容易产生误导
*修饰符
*p仅仅修饰了p,对该声明语句中的其他变量 并不产生任何作用
int* p,p2;//p是指向int的指针,p2是int
把修饰符和变量写在一起
int *p1,*p2;
涉及指针和引用声明 第一种把修饰符和变量标识符写在一起,此种形式着重强调变量具有的复合类型
第二种把修饰符和类型名写在一起
并且每条语句只定义一个变量;
指针是内存中对象,像其它对象一样有自己的地址,允许把指针的地址再存放到另一个指针当中
int *p,i;
int pp = &p; ***指向指针的指针的指针
int ival = 1024;
int *pi = &ival;//pi是一个指向int型数
int **ppi = π

  

Pointer 指针的更多相关文章

  1. js this pointer 指针

    this JavaScript的函数内部如果调用了this,那么这个this到底指向谁? 答案是,视情况而定! 如果以对象的方法形式调用,比如xiaoming.age(),该函数的this指向被调用的 ...

  2. 「2014-3-17」C pointer again …

    记录一个比较基础的东东-- C 语言的指针,一直让人又爱又恨,爱它的人觉得它既灵活又强大,恨它的人觉得它太过于灵活太过于强大以至于容易将人绕晕.最早接触 C 语言,还是在刚进入大学的时候,算起来有好些 ...

  3. 重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop

    [源码下载] 重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop 作者:weba ...

  4. 承诺c指针 (1)指针是地址

    (1)是地址 首先明白一个观点:指针就是地址.这是理解指针的起始一步. 直观感受下.变量的地址 int main() { int foo; int *foo_p; foo = 5; foo_p = & ...

  5. Tagged Pointer

    前言 在2013年9月,苹果推出了iPhone5s,与此同时,iPhone5s配备了首个采用64位架构的A7双核处理器,为了节省内存和提高执行效率,苹果提出了Tagged Pointer的概念.对于6 ...

  6. 听翁恺老师mooc笔记(3)--指针的定义

    在上一个blog学习了&运算符,使用&取了变量.数组等地址,有什么用那?如果能够将取得的变量的地址传递给函数,能否通过这个地址在函数内访问到外部这个变量?答案是肯定的,scanf(&q ...

  7. C pointer again …

    记录一个比较基础的东东…… C 语言的指针,一直让人又爱又恨,爱它的人觉得它既灵活又强大,恨它的人觉得它太过于灵活太过于强大以至于容易将人绕晕.最早接触 C 语言,还是在刚进入大学的时候,算起来有好些 ...

  8. Go之unsafe.Pointer && uintptr 类型

    Go语言是个强类型语言.Go语言要求所有统一表达式的不同的类型之间必须做显示的类型转换.而作为Go语言鼻祖的C语言是可以直接做隐式的类型转换的. 也就是说Go对类型要求严格,不同类型不能进行赋值操作. ...

  9. (C/C++学习笔记) 十二. 指针

    十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char ...

随机推荐

  1. Android中处理崩溃异常和记录日志(转)

    现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开 ...

  2. 在WPF对话框中如何验证用户提供的数据

    在WPF中,MS在msdn的WPF应用程序开发中对用户输入的数据验证做了示范,基本思想就是添加各种类型的校验规则,比如最大最小值.字符串长度.是否为空等等,在后在界面绑定数据时添加数据字段的校验.这样 ...

  3. vs中使用M_PI的问题及解决 角度转弧度&根据弧度计算圆周上点的坐标的方法

    M_PI 是一个宏定义,圆周率的定义           C/C++ code #define M_PI 3.14159265358979323846 此宏定义和编译器有关,TC中M_PI宏就定义在& ...

  4. 1355: [Baltic2009]Radio Transmission[循环节]

    1355: [Baltic2009]Radio Transmission Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 796  Solved: 538 ...

  5. 初学shell,今天遇到由wget下载到本地的网页源代码的乱码问题,无聊的写了一个转码的脚本

    今天用wget想下载文件,结果下载了一堆本地的index.html文件,一查看全是乱码,然后百度了一下,网页的编码格式大概有三种: 1.utf-8 2.gb2312 3.gbk 要在网页源码中的< ...

  6. 使用SqlDependency监听MSSQL数据库表变化通知

    SqlDependency提供了这样一种机制,当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. ...

  7. 九度OJ 1026:又一版 A+B (进制转换)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:11412 解决:3086 题目描述: 输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < ...

  8. 3款Linux网络监视工具

    1 iftop: 如果你想看到现在你的带宽到底是哪些应用在使用,并且各个应用占据了多少带宽的时候,可以用iftop显示出来.使用的参数如下: -h                  display t ...

  9. 一起来学linux:进程

    简单来说,每当执行一个程序或者命令,启动事件的时候都会得到一个PID,也就是进程ID.比如用户登陆的时候就会得到一个PID.如下所示.两个用户zhf和root在登陆后分别获得PID 3212和3214 ...

  10. Zookeeper 伪分布式部署

    Zookeeper 可以通过配置不同的配置文件启动 部署环境:CentOS 6.7 Zookeeper 路径: /opt/htools/zookeeper-3.4.6 操作步骤: 1 复制三份zoo. ...