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

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. PowerBuilder -- 条码打印

    # 使用ocx控件 使用微软的MSBCODE9.OCX,但是注册老不成功,需要安装office之后才能注册成功,不知道有没有好的处理方法?? # 使用字体 字体下载:http://download.c ...

  2. doT.js具体使用介绍

    官网: http://olado.github.iodoT.js具体使用介绍 用法: {{= }} for interpolation {{ }} for evaluation {{~ }} for ...

  3. 【题解】数字组合(NTT+组合 滑稽)

    [题解]数字组合(NTT+组合 滑稽) 今天实践一下谢总讲的宰牛刀233,滑稽. \((1+x)(1+x)(1+x)\)的\(x^2\)系数就代表了有三个一快钱硬币构成的两块钱的方案数量. 很好理解, ...

  4. 【题解】cycle

    [题解]cycle 题目描述 给定一个无向图,求一个环,使得环内边权\(\div\)环内点数最大. 数据范围 \(n \le 5000\) \(m\le 10000\) \(Solution\) 考虑 ...

  5. 流畅python学习笔记:第十二章:子类化内置类型

    子类化内置类型 在python2.2之后,内置类型都可以子类化,但是有一个注意事项:内置类型不会调用用户定义的类覆盖的特殊方法.这个说起来比较绕口,什么意思呢.我们来看下下面的代码: class Do ...

  6. TCP/IP协议之ARP寻址

    ARP协议: 前面讲了网络层的寻址是通过IP地址来做的.其实一个数据包寻址包含两个部分:1 IP寻址.2 ARP寻址. ARP寻址是用在数据链路层上的.我们上网的电脑都有网卡.那么在数据链路层的进行传 ...

  7. Action类的工作机制

    Action类的工作机制 Execute()方法包含以下参数 ActionMapping:包含了这个Action的配置信息,和struts-config.xml文件中的<action>元素 ...

  8. SAP流水号

    [转]编号范围对象维护 Tcode: SNRO OYSM   1.Number Range的通用Tcode:SNRO   2.Number Range的通用读取函数:NUMBER_GET_NEXT 3 ...

  9. poj 1146 ID Codes (字符串处理 生成排列组合 生成当前串的下一个字典序排列 【*模板】 )

    ID Codes Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6229   Accepted: 3737 Descript ...

  10. jQuery蓝色修边tab标签切换

    jQuery蓝色修边tab标签切换,jQuery,tab选项卡,标签切换,jQuery蓝色修边tab标签广告代码切换是一款非常简单实用tab选项卡切换效果,自己定义好相关的html标签即可,选项卡切换 ...