1.const可以存在的位置

1)指针常量

  • int *const ptr;

2)常量指针

  • const int *ptr;
  • int const *ptr;

3)常量指针常量

  • const int *const ptr;

记忆技巧:
把const读作常量,*读作指针,谁在前面就先读谁
谁在前面谁就不允许改变

例如:
const int *ptr; // const在前,*在后面,则读作常量指针
int *const ptr; // *在后面,const在前面,则读作指针常量

2.指针常量的作用

理解成一个常量(不能再修改值),指针在前,所以指针指向的内存地址不能改变,但内存中的内容可以改变,即指针在指向一个变量后就不能再指向其他变量了

3.常量指针的作用

理解成一个普通指针(可以修改值),常量在前,所以指针指向的内存地址可以改变,但是内存中的内容不可改变,即指针只能指向常量

4.常量指针常量的作用

指向常量的指针常量,即指针指向的内存地址不能改变,内存空间中的内容也不能改变

5.助记

  • *和const谁在前谁就先读谁
  • 把*理解成指针的值,const理解成内存空间的内容,谁在前谁就不能改变
  • 常量指针常量,是指针的值和内存空间的内容都不能改变

试试判断一下

  • int *const ptr; 指针常量,不能改变指针指向的
  • const int *ptr;
  • int const *ptr;
  • const int *const ptr;

指针常量、常量指针和常量指针常量相关推荐

  1. 【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )

    文章目录 I . 引用概念 II . 引用声明 III . 引用 地址 内存 分析 IV . 常引用 V . 引用作为参数 VI . 引用 与 指针 对比 I . 引用概念 C++ 对 C 扩充 : ...

  2. C语言程序设计 | 指针(二):常量指针和指针常量、数组参数和指针参数、函数指针数组

    指针的进阶(二)目录: 常量指针和指针常量 数组参数和指针参数 函数指针数组 常量指针和指针常量 在我们日常中,经常会用到一个关键字const const是一个C语言(ANSI C)的关键字,具有着举 ...

  3. c++ 表达式必须包含指向类的指针类型_C++:18const关键字(附常量指针、指针常量、常量指针常量)...

    一.const变量的一些基本特点 ①const修饰的变量不能被修改 const int a=10; a=20;//错误 ②因为const修饰的变量不能被修改,所以必须被初始化 int a=10; co ...

  4. c语言指针常量和常量指针,详解C语言中的常量指针和指针常量

    概述对于新手来说,指针在c语言里总是一个非常难以理解的概念.在这篇文章中,我们将解释常量指针,指针常量,const pointer to const(ps:楼主以为这可以翻译成指向常量的常量指针)的区 ...

  5. 剖析数组名、函数名(不是指针常量,更不是指针)

    对于一个数组,如 int a[4];  如果只是给出数组名a,编译器不知道该取该数组的第几个元素,因此编译器不会自动取值,而是返回该数组的首地址(第一个元素的地址).其实,数组名a就是数组本身,并不是 ...

  6. arm-linux gcc 指针 取值,GCC存储的字符串常量以及这些指针映射的位置在哪里?

    当我编译和我的Linux x86_64的机器,由GCC编译于下面的C程序运行:GCC存储的字符串常量以及这些指针映射的位置在哪里? #include int main(void) { char *p1 ...

  7. C语言初阶:define定义的常量和宏,关于指针的详细讲解,初步认识结构体的使用

    目录: 1.define定义常量和宏 2.指针 3.初始结构体 学习内容: 1.define是一个预处理指令 //1.作用一:定义标识符常量 //2.作用二:定宏 define定义的宏是用来完成替换的 ...

  8. c语言变量加常量,C语言(二)---常量与变量(示例代码)

    一.进制 1.1 二进制 1.1 简介 二进制数据是用0和1两个数码来表示的数.它的基数是2,进位规则是"逢二进1",借位规则是"借一当二".当前的计算机系统使 ...

  9. C++ 笔记(07)— 常量(字面常量、const定义常量、constexpr 定义常量、enum 定义常量、define 定义常量)

    在 C++ 中,常量类似于变量,只是不能修改.与变量一样,常量也占用内存空间,并使用名称标识为其预留的空间的地址,但不能覆盖该空间的内容. 常量可以是任何的基本数据类型,可分为整型数字.浮点数字.字符 ...

  10. 1.2 - C#语言习惯 - 用运行时常量readonly而不是编译期常量const

    C#中有两种类型的常量:编译期常量和运行时常量.二者有着截然不同的行为,使用不当将会带来性能上或正确性上的问题. 这两个问题最好都不要发生,不过若难以同时避免的话,那么一个略微慢一些但能保证正确的程序 ...

最新文章

  1. Java实现单链表的逆转置
  2. Memcached - In Action
  3. nginx系列之三:日志配置
  4. struts2 的国际化
  5. 关闭 启动_离心泵启动时为什么要关闭阀门?
  6. java comparator_【面试题】Java必考面试题全集(15)
  7. Python基础__Python序列基本类型及其操作(1)
  8. Mssql高级注入笔记.txt (转自:慕容小雨BLOG)
  9. ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法
  10. DSP28335看门狗复位
  11. 3DSMAX 中的CS 骨骼动画插件初探
  12. 2021.4.18高一模拟赛
  13. 计算机网络实验:netmeeting 在局域网上的应用
  14. 运动控制器用c语言编程吗,中文可编程运动控制器
  15. python 经典图书排行榜_计算机优秀书籍每周销售排行榜
  16. 那些漂亮有创意的思维导图真的更吸引人吗?
  17. easyrecovery2023电脑文件数据恢复软件功能介绍
  18. 程序员应该保持危机感
  19. RecyclerView 点击位置错乱问题
  20. 利用ADS中的Batch Simulation进行DDR仿真

热门文章

  1. BZOJ.2555.SubString(后缀自动机 LCT)
  2. php与web页面交互
  3. 性能测试概念点分析与过程讲解(三)
  4. Android源码中添加 修改应用
  5. 【Java从0到架构师】MyBatis - 缓存_构造方法
  6. 【实习之T100开发】T100 Q查询开发流程
  7. 不写代码不用Excel,销售总监的数据分析,10分钟你就可以学会
  8. 数据分析究竟有没有价值?看完这个案例你就明白了
  9. mysql xtrabackup 保护模式_MySQL Xtrabackup备份原理和实现细节
  10. kloxo 中php如何设置,Kloxo使用教程(5):〖网站设置〗——在Kloxo中设置伪静态...