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

本文共 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

你可能感兴趣的文章
weblogic 安装和部署项目(原创)
查看>>
打开Apache自带的Web监视器
查看>>
WebStorm界面出现中文乱码(出现口口口)
查看>>
浏览器起始页被篡改恶意跳转解决方法
查看>>
3.使用Maven构建Web项目
查看>>
产生6位组合随机数
查看>>
Android录制视频报错setVideoSize called in a invalid state 1
查看>>
angularjs ui-router
查看>>
python nltk 入门demo
查看>>
经典智力题:火车运煤
查看>>
SpringCloud常用注解
查看>>
android尺子的自定义view——RulerView
查看>>
国际化之iPhone设备支持的语种
查看>>
C#匿名方法与Delegate类型转换错误
查看>>
写给今年求职不顺的同学—一个培训师和招聘官看到的求职重大错误
查看>>
回顾我学过的编程语言
查看>>
所谓对的人
查看>>
转 Apache Kafka:下一代分布式消息系统
查看>>
协议测试
查看>>
scroollview listview
查看>>