const类型,const类型的引用

http://www.itjxue.com  2023-01-24 05:13  来源:未知  点击次数: 

C++中const什么意思?

在标准C++中,这样定义的是一个常量,用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。

const使用(类型):

1、用于指针的两种情况:const是一个左结合的类型修饰符.

int const*A;//A可变,*A不可变

int*const A;//A不可变,*A可变

2、限定函数的传递值参数:

void function(const int Var);//传递过来的参数在函数内不可以改变.

3、限定函数返回值型.

const int function();//此时const无意义

const myclassname function();//函数返回自定义类型myclassname.

4、限定函数类型.

void function()const;//常成员函数,常成员函数是不能改变成员变量值的函数。

扩展资料:

总结:

1、指针本身是常量不可变

(char*) const pContent;

const (char*) pContent;

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

const (char) *pContent;

(char) const *pContent;

3、 两者都不可变

const char* const pContent;

4、其中区别方法:

沿着*号划一条线,

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

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

5、const修饰函数参数

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

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

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

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

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

6、修饰引用参数时:

void function(const Class Var);//引用参数在函数内不可以改变

void function(const TYPE Var); //引用参数在函数内为常量不可变

7、const 修饰函数返回值

const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。

(1) const int fun1() 这个其实无意义,因为参数返回本身就是赋值。

(2) const int * fun2()

8、调用时 const int *

参考资料:

百度百科——CONST(C中的CONST)

const类型变量

1. const int *p——const用来修饰int *, *p的内容不可变,

比如你定义了const int *p=5;

那么你再对p的内容赋值就是不合法的:*p=6; // no!

2. int *const p=i;——const用来修饰 p, 指针p的地址不可变,

int i=0;

int j;

int *const p=i;

p=j; // no!

i=1; // ok!

3.const int *const p=i——限制了指针指向的内容和指向的地址

const与static的区别

const 是常量, 也就是只读的, 是一个"右值"

比如

const int iRet = 2 ;

iRet = 3 ; // 这句是错的, const类型只能在初始化的时候赋值, 之后不能改变

static称为静态变量, static有两种, 一种是在类的成员变量中, 一种是局部变量或全局变量.

在类中的, 用代码解释

class exp {

static int i1 ;

int i2 ;

} ;

int main() {

exp e1 ;

exp e2 ;

e1.i1 = 5 ;

e1.i2 = 10 ;

e2.i1 = 15 ;

e2.i2 = 20 ;

cout e1.i1 endl ; //这是输出的会是15

cout e1.i2 endl ; // 这里输出是10

return 0 ;

}

类中的static变量的意思是, 在这个类的所有实例中的值都是一样的, 它与const不同, const 只是只读, 在其他方面与不带const的变量没什么区别

还有一种是const全局变量或局部变量, 这两种是相同的, 局部变量的作用域会和全局变量相同

上代码:

static int i1 ;

int add(int a, int b) {

static int c = a + b ;

return c ;

}

void main() {

add(5, 8);

int result = c ; //这里 result会是13 无论static变量 是全局的还是局部的, 作用域都和全局变量相同

coutresultendl;

}

还有几点static的特点,(适用于static全局变量或局部变量)

1.static变量在全局数据区分配内存, 也就是 在生成的可执行文件中占一定空间, 这点与全局变量相同

2.static变量只在它所在的源文件中可用. 如果一个项目有很多 .c或者.cpp文件, static变量可以出现在每一个文件中, 而他们却是不同的, static可以解决许多文件中变量 名字相同的问题.

c语言中const 是什么意思?

常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。

const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。

作用:

(1)可以定义const常量,具有不可变性。

例如:const int Max=100; Max++会产生错误;

(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。  

 例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改;  

(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变!

如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可!

(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 还是上面的例子,如果在函数体内修改了i,编译器就会报错;

例如: void f(const int i) { i=10;//error! }  

(责任编辑:IT教学网)

更多

推荐Fireworks教程文章