×

const c

什么是const?Const是什么意思

admin admin 发表于2022-09-02 20:39:15 浏览167 评论0

抢沙发发表评论

本文目录

什么是const


const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。

Const是什么意思


const
基本词义
n. 常数;常量;结构;构造;康铜;铜镍合金;建筑;建筑物
在C语言中
const修饰符可以把对象转变成常数对象,什么意思呢?
意思就就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用!
使用方法是:
const int a=1;//这里定义了一个int类型的const常数变量a;
但就于指针来说const仍然是起作用的,以下有两点要十分注意,因为下面的两个问题很容易混淆!
我们来看一个如下的例子: //程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream》
using namespace std;
void main(void)
{
const int a=10;
int b=20;
const int *pi;
pi=a;
cout <<*pi << “|“ << a <<endl;
pi=b;
cout <<*pi << “|“ <<b <<endl;
cin.get();
}
上面的代码中最重要的一句是 const int *pi
这句从右向座读作:pi是一个指向int类型的,被定义成const的对象的指针;
这样的一种声明方式的作用是可以修改pi这个指针所指向的内存地址却不能修改指向对象的值。
如果你在代码后加上*pi=10;这样的赋值操作是不被允许编译的!
好,看了上面的两个例子你对const有了一个基本的认识了,那么我们接下来看一个很容易混淆的用法!
请看如下的代码 //程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream》
using namespace std;
void main(void)
{
int a=10;
const int *const pi=a;
cout <<*pi << “|“ <<a <<endl;
cin.get();
}
上面的代码中最重要的一句是 const int *const pi
这句从右向座读作:pi是一个指向int类型对象的const指针;
这样的一种声明方式的作用是你既不可以修改pi所指向对象的内存地址也不能利用指针的解引用方式修改对象的值,也就是用*pi=10这样的方式;
所以你如果在最后加上*pi=20,想试图通过这样的方式修改对象a的值是不被允许编译的!
所以结合上面的两点所说,把代码修改成如下形式后就可以必然在程序的任意的地方修改对象a的值或者是指针pi的地址了,下面的这种写法常被用语涵数的形式参数,这样可以保证对象不会在涵数内被改变值! //程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream》
using namespace std;
void main(void)
{
const int a=10;//这句和上面不同,请注意!
const int *const pi=a;
cout <<*pi << “|“ <<a <<endl;
cin.get();
}

诺基亚Vertu Constellation Quest为什么这么贵贵在哪里


诺基亚高端品牌Vertu推出了第一款带有QWERTY全键盘的新款手机--Constellation Quest。该款手机机身采用了白金外壳和高档皮革,看起来已经非常奢华。本周,这款手机已经通过了FCC的检测,上市指日可待。而同时我们也进一步确认这款手机将采用Symbian系统,黄金版本会同时推出,在价格上更是高达了1.95万英镑,当然对于挥金如土的富商们,对这样的价格绝对不会吃惊。 2.通过联邦委员会公布的结果可以确定这款手机就是诺基亚E71/E72/E73延伸出的豪华版本,外壳上使用了大量不锈钢、皮革材质。按键部分是由蓝宝石水晶制成。
-const

VERTU新款Constellation手机都配备了什么保护壳啊


这款新机有棕色小牛皮、葡萄紫蜥蜴皮、鳄鱼皮等等不同风格不同颜色的保护壳。题主可以登录VERTU纬图的官网看一下具体的参数。 Vertuonline com

const的几种使用方法


(1)const定义常量:
const dataType constData=value;//const修饰的类型为dataType的变量value不可变.
(2)指针中使用const,主要有三种方式
a.指针本身是常量,它本身不可变
char* const ptr;
b.指针所指向的内容是常量,指向的内容不可变
const char* ptr;
c.两者都不可变
const char* const ptr;
(3)函数中使用const
a.传指针参数前添加const
void* A(const char* Str); //Str指向的内容被修饰为常量
b.传引用参数前添加const
void* A(const ClassType &obj); //obj在函数体内被修饰为常量
(4)类中使用const
a.使用const修饰成员变量
使用const修饰类的成员函数,表示成员常量,它只能在初始化列表中赋值。如:
class A
{
A(int x): val(x) { } ; //在初始化列表中定义
const int val; //成员常量
}
b.使用const修饰类的成员函数,如 int getNum(int a)const;
这样当程序修改了类的数据成员或调用了非const成员函数时,编译器就会报错。
c.使用const修饰类的对象,或者类对象引用或指针
这对象中的所有数据成员都不能被修改,对于对象指针或对象引用也一样。
在这种情况下,同时不能通过对象名调用对象中的非const成员,这符合安全规则。
-c

C语言中const是什么意思


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

const关键字使用非常的灵活,这一点和php差别很大,php中const用来在类中定义一个常量,而在c中,const因位置不同有不同的作用,因情景不同有不同的角色,使用起来也是非常的灵活。

一、const用来修饰普通的变量(指针变量除外)的时候,const type name 和 type const name 这两种形式是完全等价的,都表示其是常量,不能进行修改。

二、const用来修饰指针变量的时候,分为以下四种情况

1、const type *name :这种情况下,const修饰的指针变量name所指向的type类型对象,也就是说指向的这个对象是不能进行修改的,因为其是常量,而指针变量确实可以进行修改的。

2、type const *name :这种情况下,const修饰的指针变量name所指向的type类型对象,意思完全同上,只是颠倒了以下顺序。

3、type * const name :这种情况下,const修饰的指针变量name,也就是说这个指针变量的值是不能进行修改的,但是指针变量所指向的对象确实可以修改的。

4、const type * const name :这种情况下,const修饰的指针变量name以及指针变量name所指向的对象,也就是说这个指针变量以及这个指针变量所指向的对象都是不能进行修改的。-const

扩展资料

使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。-c

在c中,对于const定义的指针,不赋初值编译不报错,int* const px;这种定义是不允许的。(指针常量定义的时候对其进行初始化)int const *px;这种定义是允许的。(常指针可以再定义的时候不初始化)-const

但是,在C++中int* const px;和const int* const px;会报错,const int* px;不报错。必须初始化指针的指向int* const px = &x;const int* const px=&x;强烈建议在初始化时说明指针的指向,防止出现野指针!-c

参考资料来源:百度百科—CONST


诺基亚 Vertu Constellation为什么那么贵


这种手机针对的客户是一些收藏者.VERTU系列的手机参数虽说一般吧.但制造工艺绝对是顶级的.而且制作材料都是比较稀少的金属和宝石.要我说.管这种手机叫”手机”还不如叫工艺品呢

c语言中const 是什么意思


  1. 可以定义const常量,具有不可变性。
    例如:const int Max=100; Max++会产生错误; 

  2. 便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。
    例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改; 

  3. 可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变!
    如(1)中,如果想修改Max的内容,只需要它修改成:const int Max=you want;即可!-const

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

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

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

#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定义的常量在内存中有若干份拷贝。 -c

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

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

参考资料:const百度百科


const是什么意思


名词,有以下几种含义:常数,常量,结构,构造,康铜,铜镍合金,建筑,建筑物 。

c语言中const 的含义及用法:

const 表示常量,相当于宏定义,只能读取,不能修改。

常变量:const 数据类型 符号常变量 = 数值,如:const float PI=3.14;

指针常量:数据类型 *const 指针变量=变量名,如:char *const p=“abc“;

const修饰的是指针变量,而不是指针的值,所以指针指向的值是可以修改的。

常指针:

const 数据类型 *指针变量=变量名或者是数据类型 const *指针变量=变量名,这是指针指向的值就是不可以改变的。

还有一种情况就是指针变量本身不可以修改,指针指向的值也是不允许修改的,就是指针常量和常指针组合,这种称为常指针常量:const 数据类型 *const 指针变量=变量名或数据类型 const *const 指针变量=变量名-c


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)