189 8069 5689

c语言中const函数 c语言中const的用法

c语言中const 是什么意思?

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

创新互联建站从2013年开始,先为阿克陶等服务建站,阿克陶等地企业,进行企业商务咨询服务。为阿克陶企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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

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

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

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

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

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

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

可以节省空间,避免不必要的内存分配。 例如:

#define PI 3.14159 //常量宏

const double Pi=3.14159; //此时并未将Pi放入RAM中 ......

double i=Pi; //此时为Pi分配内存,以后不再分配!

double I=PI; //编译期间进行宏替换,分配内存

double j=Pi; //没有内存分配

double J=PI; //再进行宏替换,又一次分配内存!

const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是像#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干份拷贝。

6. 提高了效率。

编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

扩展资料:const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。

参考资料:const百度百科

c语言问题,这些函数后边跟个const 啥意思 求解

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{} //定义

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)


分享标题:c语言中const函数 c语言中const的用法
分享URL:http://jkwzsj.com/article/ddoedgo.html

其他资讯