【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )
文章目录
- 一、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 在 * 右边 - 修饰变量 - 指针不变 )相关推荐
- C++中const关键字用法详解及实例和源码下载(一)
最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...
- Java语言this关键字用法全面总结
学习Java编程的时候,无论是谁,当学到面向对象这部分内容时都会遇到一个关键字:this.很多初学者对这个关键字的都会感觉到理解不透,不明白这个神秘的"this"到底表示什么意思. ...
- C语言extern关键字用法
转自:http://t.csdn.cn/ENbp9 侵权联系删除 extern表明变量或者函数是定义在其他其他文件中的 例如:extern int a; 显式的说明了a的存储空间是在程序的其他地方分配 ...
- C语言学习及应用笔记之三:C语言const关键字及其使用
在C语言程序中,const关键字也是经常会用到的一个关键字,那么使用const关键字的目的是什么呢?事实上,在程序中使用const关键字的主要目的就是为了向使用者传递设计者的一些意图. 事实上,无论我 ...
- C++ const关键字的总结(全局/局部变量、修饰指针和引用、成员函数和数据成员、修饰类对象、const与宏定义的区别、Static与Const的区别)
const关键字 const关键字 1.什么是const 2.使用原理 2.1.const全局/局部变量 2.2.cosnt修饰指针和引用 2.3.const修饰函数参数 2.4.const修饰函数返 ...
- Js中的const关键字
const关键字 和 let 关键字一样都是有块级作用域. const声明一个只读的常量.一旦声明,常量的值就不能改变.一旦声明变量,就必须立即初始化,不能留到以后赋值. const foo; // ...
- C语言extern关键字
C语言正确使用extern关键字 利用关键字extern,可以在一个文件中引用另一个文件中定义的变量或者函数 extern关键字,C语言extern关键字用法详解
- 指针铁律1:指针也是一种数据类型
指针铁律1:指针也是一种数据类型 1) 指针也是一种变量,占有内存空间,用来保存内存地址 . 测试指针变量占有内存空间大小sizeof 2)*p操作内存 在指针声明时,*号表示所声明的变量为指针 在指 ...
- C语言中定义常量的关键字是什么,C++_详解C语言中const关键字的用法,关键字const用来定义常量,如 - phpStudy...
详解C语言中const关键字的用法 关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const ...
最新文章
- laravel 5.5 的相关字符串辅助函数
- linux下使用protobuf实现简单配置功能
- java防止undo空间撑爆_秒杀系统设计补坑篇(seata回顾)
- python外卷(10)--取整
- Java、JS、OC、Flutter的Base64编码和解码
- cmdb整体项目梳理(2)
- vb不能插入png图片_VB6.0载入PNG格式图片
- VirtualBox安装RedHat7
- EhCache的使用
- 考研基础高等数学笔记
- 数字图像处理:对数变换
- Only老K说-Java设计模式之原型模式(Prototype)
- Win8.1 WP8: 蓝牙Rfcomm应用
- 代码还是要亲自动手写才行啊
- 华为云服务器销售话术技巧,云服务器销售话术
- 【安全防御】防火墙(二)
- 公安联勤指挥调度实战应用系统软件平台解决方案
- Statement接口的基本介绍和使用
- 红米note升级android,新版红米Note配置升级:系统基于Android 4.4.2
- 手机如何测光照度_如何3分钟学会用手机的专业模式拍照?
热门文章
- 两道相似题——water-easyJavabeans
- legend3---laravel中获取控制器名称和方法名称
- 【基础算法-模拟-例题-*校长的问题】-C++
- MongoDB -- Error: unclean shutdown detected
- 如何正确选择开源数据库?你需要这的5个技巧
- BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】
- BZOJ1082: [SCOI2005]栅栏
- Eclipse启动报错Java was started but returned exit code=13
- Css2.0+Css3.0+jQuery手册 chm
- sublime text3 最新 license注册码分享 2018