常量指针(Pointer to const)与指针常量(Const pointer)

1. Concepts

很多时候对于这两个概念的困惑来自于中文字面翻译。我们无法通过字面含义直接理解判断该‘常量’修饰指针还是指针指向的内容。只有人为的记忆强化使得自己强制记住常量指针 ---- 内容是常量;指针常量 — 指针是常量。其实英文概念很清晰地表面

  • 常量指针是the pointer points to const data,
  • 指针常量是the const pointer.

2. Definitions

总的来说,

  1. 关键字const在星号*左边表示被指的是常量(pointer to const)
  2. 关键字const在星号*右边表示指针本身是常量 (const pointer)

建议大家直接记住该两点定义与对应的英文说法 — pointer to const, const pointer.

Examples

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

Explanation

const关键字修饰作用于其后的定义

const char *p = greeting; //char *p指向的是const data
char const *p = greeting; //p指向的是const data
char
const p = greeting; //p指针是const

常量指针(Pointer to const)与指针常量(Const pointer)相关推荐

  1. 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )

    文章目录 一.const 普通用法 二.常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 ) 三.指针常量 ( 指针不能被修改 ) 三.指向 常量 的 指针常量 四.const 在 * 左 ...

  2. c/c++教程 - 1.9 指针 空指针 野指针 const修饰指针 指针常量 常量指针 指针和数组 指针和函数

    十一.指针 (1)指针的定义和使用 指针的作用:可以通过指针间接访问内存. 参考视频:https://www.bilibili.com/video/BV1et411b73Z?from=search&a ...

  3. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  4. 常引用、常量指针、指针常量、指向常量的常指针、空指针与野指针解释

    1.一.基础知识 引用并非对象 引用必须初始化 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起 类型要严格匹配 int &a = 10; //错误:引用类型的初始值必须是 ...

  5. 初识C语言(1)(2)(3)(4) C语言入门 保姆级教程 变量 常量 字符串 转义字符 操作符 关键字 字符串 指针 函数 结构体 数组 选择语句 循环语句

    一.如何写C语言代码 1.编译器 2.创建项目 3.创建源文件 4.写代码 5.编译+链接+运行 项目名字不要汉语,不要特殊字符,不要加空格,项目路径一般为你想要的路径 C语言中,一般创建.c源文件, ...

  6. 【C 语言】字符串 一级指针 内存模型 ( 指定大小字符数组 | 未指定大小字符数组 | 指向常量字符串的指针 | 指向堆内存的指针 )

    文章目录 一.字符串 一级指针 内存模型 1.指定大小字符数组 2.未指定大小字符数组 3.指向常量字符串的指针 4.指向堆内存的指针 一.字符串 一级指针 内存模型 #include <std ...

  7. 指针指向字符串常量和给字符数组赋值字符串常量的本质

    众所周知任何类型的指针在32位模式下大小都为4BYTE,很多人对数组和指针并不能很好的区分它们的区别,首先在C语言层面,数组名是一个常量不可修改,而指针可以随意指向,其次如果在a.cpp中定义了 ch ...

  8. C++ const 引用 指针答疑

    常变量 const int a 常引用 const int &a 常指针 const int *a const * int a 用法1:常量     取代了C中的宏定义,声明时必须进行初始化( ...

  9. const与指针用法

    const const int z =y.之后z不能再赋值了. person p1("abc",200); const person* p =&p1; //对象是const ...

  10. c++ const 常指针

    const char * a; //指向const对象的指针或者说指向常量的指针. char const * a; //同上 char * const a; //指向类型对象的const指针.或者说常 ...

最新文章

  1. 阿里云centos服务器rdp远程桌面规则_阿里云服务器使用教程 新手用户的好帮手...
  2. Python 获取指定文件夹下的目录和文件
  3. matlab lu分解求线性方程组_计算方法(二)直接三角分解法解线性方程组
  4. hdu_2089 不要62
  5. ic408服务器系统,威力铭408mt技术描述和配置.docx
  6. 人身三流指什么_保险合同的主体是什么,主体的变更是什么?
  7. 删数问题(Noip1994)
  8. 服务器显示器分辨率,屏幕分辨率修改
  9. TCPMP源代码分析
  10. Web前端布局总体架构
  11. java将图片转化为base64码
  12. 深入理解凸优化核心理论:对偶
  13. vue中使用ajax全局配置,jQuery和vue 设置ajax全局请求
  14. 【实战】如何在手机上实时接收微信小店订单提醒
  15. 干支纪年法简便算法_电子工程师笔记,常用的C语言算法总结,值得转发收藏...
  16. IT类职位常用缩写 SA SD RD PG PM DBA MIS QA Sales
  17. 【Paper】2018_Nonlinear finite-time consensus-based connected vehicle platoon control under fixed and sw
  18. python中国剩余定理-中国剩余定理 Python实现
  19. 武汉最最最牛逼的 IT 公司全在这了
  20. myrio与fpga编程_LabVIEW-myRIO

热门文章

  1. 计算机网络知识点(四) 介质访问控制子层
  2. html语言中hr是什么意思,网页制作中的hr是什么意思
  3. 运行tensorflow-datasets遇到import tensorflow.compat.v2 as tf报错ImportError: No module named tensorflow.V2
  4. 一键解锁,宿舍管理隐藏技能
  5. win10 不能查看其它电脑共享文件夹常用解决方法
  6. 计算机安全知识有哪些方面,信息安全的基本属性包括哪些方面?
  7. 6、GitHub 操作
  8. Postgresql13.1增量排序BUG
  9. 云计算实验2 Spark分布式内存计算框架配置及编程案例
  10. Thread详解一(interrupt)