文章目录

  • 一、const 普通用法
  • 二、常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 )
  • 三、指针常量 ( 指针不能被修改 )
  • 三、指向 常量 的 指针常量
  • 四、const 在 * 左右的意义

一、const 普通用法


const 关键字 在 C 和 C++ 中的表现不同 , 本篇博客主要介绍 C 语言中的 const 用法 ;

const 的用法 : 下面的 222 个写法作用相同 , const 可以在 数据类型 前面 , 也可以在 数据类型 后面 ;

// 下面两个 const 用法相同
const int a;
int const a;

二、常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 )


下面的 c 是 指向 常量字符 的指针 , const char 表示 常量字符 , const char * 表示 指向 常量字符 的指针 ;

  • 该指针 指向的 内存空间 不能被修改 ,
  • 指针可以被修改 ;
// 指向 常量字符 的指针
const char *c;

上述代码 指针指向的 内存 是常量 ; 常量指针

三、指针常量 ( 指针不能被修改 )


下面的 d 是 指向 字符 的 常量指针 , char * 表示一个指向 char 字符的指针 , 后面加上 const 表示该指针 是 常量指针 ;

  • 该指针 指向的 内存空间 可以被修改 ,
  • 指针 不能 被修改 ;
char * const d;

上述代码 指针 是常量 ; 指针常量

三、指向 常量 的 指针常量


下面的 c 是 常量指针 指向一个常量 , 指针 和 指针指向的内存 , 都不能被修改 ;

const char * const c;

四、const 在 * 左右的意义


普通的数据类型 , const 在数据类型左右作用相同 ;

指针数据类型 , const 在 * 左侧是 常量指针 ( 内存不能修改 ) , const 在 * 右侧是 指针常量 ( 指针不能被修改 ) ;

指针常量与常量指针 : 需要查看 const 修饰的是 指针变量 , 还是 修饰 指针变量 指向的内存空间 ;

  • const 在 * 右边 ( 指针常量 | const 修饰的是变量 ) : const 修饰的是 指针变量 , 如 char * const d , const 修饰的是 char * , 指针不能被修改 ; 这是 指针常量 ;
  • const 在 * 左边 ( 常量指针 | const 修饰的是数据类型 ) : const 修饰的是 指针变量 指向的内存空间 , 如 const char *c , const 修饰的是 char , char 数据不能被修改 , 这是 常量指针 , 指向常量的指针 ;

const 修饰的是右边的内容 ,

  • 右边是 变量 , 相当于 const 在 * 右边 , 指针常量 , 指针不能修改 ;
  • 右边是 数据类型 , 相当于 const 修饰的是 内存中的数据 , 指针指向的内存不能被修改 ;

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

  1. C++中const关键字用法详解及实例和源码下载(一)

    最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...

  2. Java语言this关键字用法全面总结

    学习Java编程的时候,无论是谁,当学到面向对象这部分内容时都会遇到一个关键字:this.很多初学者对这个关键字的都会感觉到理解不透,不明白这个神秘的"this"到底表示什么意思. ...

  3. C语言extern关键字用法

    转自:http://t.csdn.cn/ENbp9 侵权联系删除 extern表明变量或者函数是定义在其他其他文件中的 例如:extern int a; 显式的说明了a的存储空间是在程序的其他地方分配 ...

  4. C语言学习及应用笔记之三:C语言const关键字及其使用

    在C语言程序中,const关键字也是经常会用到的一个关键字,那么使用const关键字的目的是什么呢?事实上,在程序中使用const关键字的主要目的就是为了向使用者传递设计者的一些意图. 事实上,无论我 ...

  5. C++ const关键字的总结(全局/局部变量、修饰指针和引用、成员函数和数据成员、修饰类对象、const与宏定义的区别、Static与Const的区别)

    const关键字 const关键字 1.什么是const 2.使用原理 2.1.const全局/局部变量 2.2.cosnt修饰指针和引用 2.3.const修饰函数参数 2.4.const修饰函数返 ...

  6. Js中的const关键字

    const关键字 和 let 关键字一样都是有块级作用域. const声明一个只读的常量.一旦声明,常量的值就不能改变.一旦声明变量,就必须立即初始化,不能留到以后赋值. const foo; // ...

  7. C语言extern关键字

    C语言正确使用extern关键字 利用关键字extern,可以在一个文件中引用另一个文件中定义的变量或者函数 extern关键字,C语言extern关键字用法详解

  8. 指针铁律1:指针也是一种数据类型

    指针铁律1:指针也是一种数据类型 1) 指针也是一种变量,占有内存空间,用来保存内存地址 . 测试指针变量占有内存空间大小sizeof 2)*p操作内存 在指针声明时,*号表示所声明的变量为指针 在指 ...

  9. C语言中定义常量的关键字是什么,C++_详解C语言中const关键字的用法,关键字const用来定义常量,如 - phpStudy...

    详解C语言中const关键字的用法 关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const ...

最新文章

  1. laravel 5.5 的相关字符串辅助函数
  2. linux下使用protobuf实现简单配置功能
  3. java防止undo空间撑爆_秒杀系统设计补坑篇(seata回顾)
  4. python外卷(10)--取整
  5. Java、JS、OC、Flutter的Base64编码和解码
  6. cmdb整体项目梳理(2)
  7. vb不能插入png图片_VB6.0载入PNG格式图片
  8. VirtualBox安装RedHat7
  9. EhCache的使用
  10. 考研基础高等数学笔记
  11. 数字图像处理:对数变换
  12. Only老K说-Java设计模式之原型模式(Prototype)
  13. Win8.1 WP8: 蓝牙Rfcomm应用
  14. 代码还是要亲自动手写才行啊
  15. 华为云服务器销售话术技巧,云服务器销售话术
  16. 【安全防御】防火墙(二)
  17. 公安联勤指挥调度实战应用系统软件平台解决方案
  18. Statement接口的基本介绍和使用
  19. 红米note升级android,新版红米Note配置升级:系统基于Android 4.4.2
  20. 手机如何测光照度_如何3分钟学会用手机的专业模式拍照?

热门文章

  1. 两道相似题——water-easyJavabeans
  2. legend3---laravel中获取控制器名称和方法名称
  3. 【基础算法-模拟-例题-*校长的问题】-C++
  4. MongoDB -- Error: unclean shutdown detected
  5. 如何正确选择开源数据库?你需要这的5个技巧
  6. BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】
  7. BZOJ1082: [SCOI2005]栅栏
  8. Eclipse启动报错Java was started but returned exit code=13
  9. Css2.0+Css3.0+jQuery手册 chm
  10. sublime text3 最新 license注册码分享 2018