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的用法
分享网址:https://www.cdcxhl.com/article10/ddoedgo.html

成都网站建设公司_创新互联,为您提供品牌网站建设手机网站建设电子商务网站收录微信小程序标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司