const,const是什么意思
一、const函数的用法
const在C/C++中有很多的用法,现将const的用法做如下总结。
1、const修饰变量
const修饰变量,可以使变量具有常属性,也就是该变量在以后的使用中其值都不能进行改变。
在这里要注意的一点就是const修饰的变量要进行初始化。
2、const和指针
用const修饰指针有以下几种情况
3、保护函数参数不被改变
用const修身函数的参数,可以保证该参数的值在函数内部不被改变。
但是一般const修饰的参数都有哪些呢?
一般用引用或者传地址的方式给函数传递一个参数,如果在函数体内对该参数进行修改,那么就会连实参的值一并进行修改。
4、const修饰函数返回值
const修饰函数的返回值,防止函数的返回值被修改
但是这里要注意的是,必须也用const修饰的变量来接收这个函数的返回值。
5、const修饰类成员函数
const可以修饰类成员函数,防止类成员函数中除了static成员之外的其他成员被修改。
6、const修饰类的成员变量
类的成员变量可以分为静态的和非静态的,如果const修饰的是静态的成员变量,可以在构造函数中对该变量进行初始化;如果const修饰的是静态的成员变量,则需要在类外对该变量进行初始化。
7、const和#define的区别
#defineA10
constintA=10;
上面两条语句的作用是一样的,但是后面一条语句可以节省内存空间,这是为什么呢?
原因在于在程序中多次使用const类型的变量,只会在第一次分配内存,但是如果使用#define定义的宏,则每次都会分配内存,这样看来使用const会节省很多空间。
8、const和extern
file1.cpp中,constinta;
file2.cpp中,externinta;//错误,无法调用,
说明const修饰大的变量只能在该程序的本文件中使用,不能在该程序的其他文件中使用。
要想const定义的对象变量能被其他文件调用,定义时必须使用extern修饰为
externconstintval;
二、const用法
const关键字至少有下列n个作用:
(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;
(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;
(3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;
(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;
(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。例如:
constclassAoperator*(constclassA&a1,constclassA&a2);
operator*的返回结果必须是一个const对象。如果不是,这样的变态代码也不会编译出错:
classAa,b,c;
(a*b)=c;//对a*b的结果赋值
操作(a*b)=c显然不符合编程者的初衷,也没有任何意义。
三、const是什么意思
定义常量,常量就是不变的值,用在函数,变量,数组,指针类型说明前(如:constinta=10;)表示的a值永远是10.