博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Const #define
阅读量:7100 次
发布时间:2019-06-28

本文共 878 字,大约阅读时间需要 2 分钟。

(1) 指针本身是常量不可变

(char*) const pContent;

const (char*) pContent;

(2) 指针所指向的内容是常量不可变

const (char) *pContent;

(char) const *pContent;

(3) 两者都不可变

const char* const pContent;

还有其中区别方法:

沿着*号划一条线,

如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;

如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。

2. const修饰函数参数

const修饰函数参数是它最广泛的一种用途,它表示函数体中不能修改参数的值(包括参数本身的值或者参数其中包含的值)。它可以很好

void function(const int Var); //传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)

void function(const char* Var); //参数指针所指内容为常量不可变

void function(char* const Var); //参数指针本身为常量不可变(也无意义, 因为char* Var也是形参)

参数为引用,为了增加效率同时防止修改。

const修饰类的成员函数,则该成员函数不能修改类中任何非const成员函数。一般写在函数的最后来修饰。

3. const常量与define宏定义的区别

(1) 编译器处理方式不同

define宏是在预处理阶段展开。

const常量是编译运行阶段使用。

(2) 类型和安全检查不同

define宏没有类型,不做任何类型检查,仅仅是展开。

const常量有具体的类型,在编译阶段会执行类型检查。

(3) 存储方式不同

define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。

const常量会在内存中分配(可以是堆中也可以是栈中)。

转载于:https://www.cnblogs.com/minmsy/p/5021830.html

你可能感兴趣的文章
Vue的数据绑定部分的简要过程解释
查看>>
kubectl 搭建
查看>>
网络请求 - 收藏集 - 掘金
查看>>
好用的项目初始化工具SCION升级啦!
查看>>
Android敲门砖 - 收藏集 - 掘金
查看>>
[译] npm, yarn以及pnpm的不同之处
查看>>
通过Atlas实现MySQL读写分离
查看>>
JMessage Android 端开发详解
查看>>
你想不到的最简单php操作MySQL
查看>>
用 vue2 和 webpack 快速建构 NW.js 项目(2)
查看>>
LeetCode 31_Next Permutation
查看>>
2018 re:Invent回顾篇:前线开发者眼中AWS的创新版图
查看>>
GitHub Checks API帮助应用实现进一步的持续集成
查看>>
滴滴进入寒冬期,将裁员2000人
查看>>
埃隆·马斯克:比特币拥有着“极为出色”的结构,而纸质货币终将消失
查看>>
一行代码迁移TensorFlow 1.x到TensorFlow 2.0
查看>>
架构周报:十亿级红包的平台架构揭秘
查看>>
京东构建了全球最大的Kubernetes集群,没有之一
查看>>
亚马逊是如何进行软件开发的
查看>>
More than React(五)异步编程真的好吗?
查看>>