const对象:

const对象声明时必须赋初值,该值在编译阶段确定,不可在程序中修改。

const修饰符既可放在类型名前也可放在类型名后,通常放在类型名前。不过放在类型名后易于理解。

const int a = 7;

int b = 8;

int array[a];//合法, a是const变量,值在编译阶段确认

int arr[b];  //不合法,b是个普通变量,值没有在编译阶段确定

指向const对象的指针:

可理解为“自认为指向const对象的指针”,其实际所指向的对象不一定是const对象

不能通过指向const对象的指针修改其指向的对象的值,即使该对象为非const对象。

指针本身可以赋其他值,由于指针本身并不是const对象,因此在初始化时不必赋初值,如 const int *a; //合法声明

指向const对象的指针通常作为函数的形参,防止在函数内部更改该指针指向的对象。

const int a = 7;

int b = 8;

const int *cptr;

cptr = &b;     //不可通过cptr指针修改b的值,但可以直接对b赋值来修改b的值

const指针:

指针本身为const,此种类型指针为普通const变量,声明时必须赋初值。其值不可被修改。

例:int a = 7;

int* const ptr = &a;

typedef的情况

typedef int* IntPtr; //IntPtr为int指针类型

int a = 8;

const InPtr ptr = &a; //ptr为const指针,不是指向const对象的指针,必须赋初值,可参考const int b = 8;

const对象,指向const对象的指针 和 const 指针的更多相关文章

  1. 对ES6中类class以及实例对象、原型对象、原型链之间关系的详细总结

    1. 类 ES6 中新增加了类的概念,可以使用 class 关键字声明一个类,之后用这个类来实例化对象.即类的用途:实例化对象. // 创建一个Person类 class Person { } // ...

  2. c++中的const参数,const变量,const指针,const对象,以及const成员函数

    const 是constant 的缩写,“恒定不变”的意思.被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性.所以很多C++程序设计书籍建议:“Use const whe ...

  3. 指向const的指针和const指针

    1.指向const的指针:const int *p 或 int const *p 解释:p是一个指针,指向const int类型的常量:指针指向的内容为常量,因此不能改变*p的值,但指针p可以改变,指 ...

  4. OC3-父类指针指向子类对象

    // // Cat.h // OC3-父类指针指向子类对象 // // Created by qianfeng on 15/6/17. // Copyright (c) 2015年 qianfeng. ...

  5. 为什么const对象只能调用const成员函数,而不能调用非const成员函数?

    在c++中,我们可以用const来定义一个const对象,const对象是不可以调用类中的非const成员函数,这是为什么呢?下面是我总结的一些原理. 假设有一个类,名字为test代码如下: clas ...

  6. C++中指向对象的常指针和指向常对象的指针

    指向对象的常指针 将指向对象的指针变量声明为const型,并使之初始化,这样指针值始终保持为其初始值,不能改变. Time t1(10,12,15),t2; Time * const ptr1=&am ...

  7. 20140408 父类指针指向子类对象 ;delete ;static作用

    1.父类指针可以指向子类对象 静态联翩:如果以父类指针指向派生类对象,那么经由该指针只能访问父类定义的函数 动态联编:根据指针实际指向的对象类型确定 2.面试宝典 P110 面试题5  #includ ...

  8. ES6 之 let和const命令 Symbol Promise对象

    ECMAScript 6入门 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了. (2016年6月,发布了小幅修订的<ECMASc ...

  9. C++析构函数的自动调用(用于父类指针指向子类对象,内存泄漏问题)

    class A {public:A() { printf("A \n"); }~A() { printf(" ~A \n"); } // 这里不管写不写virt ...

随机推荐

  1. 【MVC】Model的使用

    1,Model的职责: Model只负责与数据处理相关的工作. 2,开发Model的基本观念 采用ORM信息访问技术开发 ORM是将结构化的关系型数据,映射成面向对象模型.对于EF来说,就是关系型数据 ...

  2. 合泰 HOLTEK 单片机中 I/T O/T 什么意思?

    合泰 HOLTEK 单片机中 I/T O/T 什么意思?

  3. 设置zedgraph鼠标拖拽和局部放大属性(转帖)

    说一下几个属性的意义和具体应用: (1)鼠标拖拽显示区域 PanModifierKeys ->> Gets or sets a value that determines which mo ...

  4. Microsoft Dynamics CRM 2011 常用JS 按F12 改动窗体上数据的方法

    1.按F12打开控制台输入下面代码: contentIFrame.Xrm.Page.getAttribute("new_status").setValue(50);//设值cont ...

  5. 【python】字符串函数

    1.String模块中的常量: string.digits:数字0~9 string.letters:所有字母(大小写) string.lowercase:所有小写字母 string.printabl ...

  6. 【ActiveMQ入门-5】ActiveMQ学习-Queue与Topic的比较

    Queue与Topic的比较 1.JMS Queue执行load balancer语义: 一条消息仅能被一个consumer收到. 如果在message发送的时候没有可用的consumer,那么它将被 ...

  7. k8s1.4.3安装实践记录(1)-etcd、docker、flannel安装配置

    虚拟机:VMware® Workstation 12 Pro 系统:CentOS Linux release 7.2.1511 (Core) 3.10.0-327.el7.x86_64 由于刚开始学习 ...

  8. 关于cookie的一些事

    关于cookie的一些事转自:http://blog.csdn.net/yunnysunny/article/details/7748106 cookie是实现web中用户状态维护的基础.我们常见的s ...

  9. 如何干净的清除Slave同步信息

    MySQL> show master status; +------------------+-----------+--------------+------------------+---- ...

  10. mysql响应时间超时排查

    背景: 数据库运营环境,zabbix mysql响应时间告警,响应时间超时 zabbix监控 tcprstart 直接抓包响应时间看到每5秒钟就一次,与zabbix监控一致 [root@slave1( ...