C++ 常量指针与指针常量

        一、常量指针(constant pointers):指针自身是常量,const关键字出现在星号右边。如:

1 char greeting[] = "Hello";2 char* const p = greeting;     // const pointer, non-const data

        二、指针常量(pointers to constants):指针所指物是常量,const关键字出现在星号左边。如: 

11 char greeting[] = "Hello"; 22 const char* p = greeting; // non-const pointer, const data

        我对这两个概念的理解来自于《Effective C++》(第三版,侯捷译)。

        在该书的第一章-条款02中有这样一段话:”当我们以常量替换#defines, 有两种特殊情况值得说说。第一是定义常量指针(constant pointers)。由于常量定义式通常被放在头文件内......因此有必要将指针(而不只是指针所指之物)声明为const。“。由此得到常量指针的定义。

        结合第二章-条款03中的这段话:“如果关键字const出现在星号左边,表示被指物是常量;如果出现在星号右边,表示指针自身是常量;......”,就得到了C++中常量指针与指针常量的定义与区别。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid

Twitter的分布式自增ID算法snowflake (Java版)

概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移