三九宝宝网宝宝教育教学论文

c语言中const是什么意思

03月23日 编辑 39baobao.com

[c语言中const static关键字的用法]1. const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。 2. const可以修饰变量,函数的入参,函数的返回值...+阅读

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

例如: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百科

const什么意思 C语言

1、什么是const?

常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)

编辑本段

2、为什么引入const?

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

编辑本段

3、主要作用

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

例如:const int Max=100; int Array[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! }

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

#define PI 3.14159 //常量宏

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

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

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

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

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

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

(6) 提高了效率。

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

C中的const是什么

const

基本词义

n. 常数;常量;结构;构造;康铜;铜镍合金;建筑;建筑物

而const定义是带有类型的,定义的是变量,它有实际内存,只是这个内存是不可以更改的。

所以从C++中提倡使用const变量

在C语言中

const修饰符可以把对象转变成常数对象,什么意思呢?

意思就就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用!

使用方法是:

const int a=1;//这里定义了一个int类型的const常数变量a;

但就于指针来说const仍然是起作用的,以下有两点要十分注意,因为下面的两个问题很容易混淆!

我们来看一个如下的例子: //程序作者:管宁

//站点:.cndev-lab.com

//所有稿件均有版权,如要转载,请务必著名出处和作者

#include using namespace std;

void main(void)

{

const int a=10;

int b=20;

const int *pi;

pi=a;

cout pi=b;

cout cin.get();

}

上面的代码中最重要的一句是 const int *pi

这句从右向座读作:pi是一个指向int类型的,被定义成const的对象的指针;

这样的一种声明方式的作用是可以修改pi这个指针所指向的内存地址却不能修改指向对象的值。

如果你在代码后加上*pi=10;这样的赋值操作是不被允许编译的!

好,看了上面的两个例子你对const有了一个基本的认识了,那么我们接下来看一个很容易混淆的用法!

请看如下的代码 //程序作者:管宁

//站点:.cndev-lab.com

//所有稿件均有版权,如要转载,请务必著名出处和作者

#include using namespace std;

void main(void)

{

int a=10;

const int *const pi=a;

cout cin.get();

}

上面的代码中最重要的一句是 const int *const pi

这句从右向座读作:pi是一个指向int类型对象的const指针;

这样的一种声明方式的作用是你既不可以修改pi所指向对象的内存地址也不能利用指针的解引用方式修改对象的值,也就是用*pi=10这样的方式;

所以你如果在最后加上*pi=20,想试图通过这样的方式修改对象a的值是不被允许编译的!

所以结合上面的两点所说,把代码修改成如下形式后就可以必然在程序的任意的地方修改对象a的值或者是指针pi的地址了,下面的这种写法常被用语涵数的形式参数,这样可以保证对象不会在涵数内被改变值! //程序作者:管宁

//站点:.cndev-lab.com

//所有稿件均有版权,如要转载,请务必著名出处和作者

#include using namespace std;

void main(void)

{

const int a=10;//这句和上面不同,请注意!

const int *const pi=a;

cout cin.get();

}

C语言中const的作用

这样想是可以,不过有以下几个问题:

1,通常情况下,项目由几个程序员联合开发,声明为const会告知其他合作者,这个变量不要动。

2,肯定会存在程序员离职交接的情况,这会给后来的程序员带来方便

3,项目的代码可能会很多,使用这个变量的地方可以有很多处,例如几十上百处,你可能会记不住

4,一旦你记不住,或者其他程序员改错了,会导致难以查出的bug。

其实这些都好避免,只要你加一个const,那么对它的赋值都会带来一条编译错误,这样会在程序发布之前就得到解决。问题么,是越早发现越好解决。

你现在也许还是在学习阶段,都是做数十到几百行规模的程序,不过当你将来做几万甚至几十万的规模时,你就会知道,该写而不写const是多么不友好了。

以下为关联文档:

c语言中const是什么意思怎么用什么时候用常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 作用: (1)...

C语言中const的作用这样想是可以,不过有以下几个问题: 1,通常情况下,项目由几个程序员联合开发,声明为const会告知其他合作者,这个变量不要动。 2,肯定会存在程序员离职交接的情况,这会给后来的程序员...

在c语言中 char c 010是什么意思010是line feed的ASCII码,是换行的意思。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的...

c语言中strlen是什么意思strlen:计算字符串长度的库函数名。 str:通常,程序员喜欢用它作 字符串 变量名。它是string(英文词字符串的缩写)。 len:通常,程序员喜欢用它作 变量名。它是 length(英文词长度的缩...

c语言中外部函数是什么意思有两种理解.(1)库函数是C语言的内部函数或自带函数,外部函数即程序员自定函数. (2)凡加写了extern 的函数是外部函数. 第一种理解好懂: C语言的内部函数指的是C语言自带的函数,无...

C语言中sizeof是什么意思main() { char p[]={'a','b','c'},q[]="abc"; //定义字符数组 注意:p和q不同-为q分配4个字节的空间 {'a','b','c','\0'} printf("%d %d\n",sizeof(p),sizeof(q)); //sizeof 是C里...

请问C语言中的 const char是什么意思这个一个名为map的常量指针,这个指针是指向一个二维数组font[0][0], unsigned char *map是定义一个无符号型char指针, *map = &fornt[0][0]是取fornt数组的地址,并将地址值赋给...

c语言中转义字符是什么意思转义字符C语言表示字符种特殊形式通常使用转义字符表示ASCII码字符集打印控制字符和特定功能字符用于表示字符常量单撇号( ')用于表示字符串常量双撇号( ")和反斜杠( \)等转义字符...

C语言中 amp是什么意思C语言中 amp是什么意思,c输出时输出函数输出指针:1. "按位与" 运算符. 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结...

推荐阅读
图文推荐