const 限定符,它把一个对象转换成一个常量。
创新互联建站专注于阜城企业网站建设,成都响应式网站建设,成都商城网站开发。阜城网站建设公司,为阜城等地区提供建站服务。全流程按需网站制作,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
1.》》const与define。两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内联函数(Inline)。const和define定义的常量可以放在头文件里面。(小注:可以多次声明,但只能定义一次)
2.》》const与指针和引用。
(a)const与指针。
先来看看下面的几种定义:
intme;
constint*p1=me;//p1可变,*p1不可变,此时不能用*p1来修改,但是p1可以转向
int*constp2=me;//p2不可变,*p2可变,此时允许*p2来修改其值,但是p2不能转向。
constint*constp3=me;//p3不可变,*p3也不可变,此时既不能用*p3来修改其值,也不能转向
(b)指针和引用的区别很简单,就是引用更简洁,更安全。因为引用声明时必须初始化。 引用更接近const指针,一旦与某个变量关联,就将一直效忠于他。
(c)const指针可以接受const和非const地址,但是非const指针只能接受非const地址。所以const指针的能力更强一些,所以尽量多用const指针,这是一种习惯。
3.》》(a)const与函数。由于2(c),所以经常把函数的形参类型设为const,而且多为const 引用。但是这里有一个限制,不能把不是左值的地址传递给引用。(左值包括变量,数组元素,结构成员,引用,被解除引用的指针等)。 形参是const类型的,说明该函数将不会修改其值,该函数便为const函数。
(b)const与类成员函数。先看看下面这段代码:
constStockland=Stock("hyd");
land.show();
land 是常量,但是类成员函数show无法保证不修改land,所以编译器将拒绝执行该段代码。除非你能保证show像const函数一样,但这需要另外一种语法,即:
void show() const; //声明
void Stock::show() const{} //定义
(1)可以定义
const
常量
(2)const
可以修饰函数的参数、返回值.
详细内容:
1、什么是const?
常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)
2、为什么引入const?
const
推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。
3、cons有什么主要的作用?
(1)可以定义const常量,具有不可变性。
例如:
const
int
Max=100;
int
Array[Max];
const就是说这个函数操作不会对变量或是对象之类的值有影响 比如你有一个human类 你现在要得到某个human类对象A的age 那么肯定是不会因为你想得到这个值而改变了age的大小 对吧 那么你就可以写一个函数int getAge()const这样就好 这么做是为了防止你在函数中对不应该在这里改变的量不小心进行了改变。这样的函数叫常成员函数。常成员函数可以理解为是一个“只读”函数,它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用const成员函数。
const修饰说明它是一个常量,它的值是不能被修改的。没有什么地方是必须要用的,你只要觉得这个数字你不会改变就可以用。一般在函数传递参数中用的比较多,你可以看看C语言的库函数参数中很多都是用const修饰的。
比如字符串拷贝的声明函数char *strcpy(char *dest,const char *src); 后边的形参用了const修饰,在函数定义中src的值就不能被改变,dest的值就可以被改变,也是一种提示的作用说明字符串是从src拷贝到dest中
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款