c语言里const int 和int 有什么区别,const的作用是什么。

2、int在定义的时候,不需要初始化,而const int 在定义的时候必须初始化;

一、区别如下:

c++const用法 c++const用法举例c++const用法 c++const用法举例


c++const用法 c++const用法举例


c++const用法 c++const用法举例


另外,它还能提高程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。

1、int定义的量是变量,它的值可以更改;而const int 定义的是一个常量,它的值不可以更改。

二、const的作用:把对象转换成一个常量

拓展资料

const与define。两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更一些。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内联函数(Inline)。const和define定义的常量可以放在头文件里面。

参考资料:

1、内容不同

constint p; //p可变,p指向的内容不可变,int const p; //p可变,p指向的内容不可变。 int const p; //p不可变,p指向的内容可变 const int const p; //p和p指向的内容都不可变。

2、取指针

const int类型一旦定义以后就不能修改,int类型是随时可以修改的。

3、返回值

const int是返回这个数值的一个常量的引用。

而int是返回这个数值的一个拷贝。

const作用:

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

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

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

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

3、可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。

扩展资料:const 和指针一起使用会有几种不同的顺序,如下所示:

1、const int p1;

2、int const p2;

3、int const p3;

当然,指针本身和它指向的数据都有可能是只读的,下面的两种写法能够做到这一点:

1、const int const p4;

2、int const const p5;

怎么会有人说没有区别的。。没区别还要这个东西干蛋。。

在取指针方面,const有略复杂的东西,但是常规的、合理的作不应该涉及到,因为const int是用来保存一些全局常量的,这些常量在编译期可以改,在运行期不能改,听起来这像宏,其实这确实就是用来取代宏的:

#define PI 3.14

const float Pi = 3.14;

如果你的代码里用到了100次PI(宏),你的代码中会保存100个3.14这个常数,鉴于使用常数进行运算的机器代码很多时候会比使用变量来的长,如果你换用100次Pi(const float),程序编译后的机器码里就不需要出现100次常量3.14,只要在需要的时候引用存有3.14的常量就行了,特别在复杂的运算里,3.14这个常量(其实是无法修改的变量)会被一直装载在寄存器里带来一些性能提升。

两个没有区别,但当const修饰的是指针时就有区别.

const int a

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

const int表示这个值是个常整型,必须在声明的同时初始化,并且初始化之后值就不能再被改变

const int类型一旦定义以后就不能修改,int类型是随时可以修改的。

首先要明白const起的是强调只读属性的作用 把一个数或者指针当作常量看待

const int a = 10; a= 15;//不能直接修改常量 int a = 10; a = 15; //可以直接修改

虽然加了const不能直接修改 但是可以通过指针间接修改

通过加volatile关键字强调从变量地址读取变量的值 保证数据不会从寄存器中读取导致修改失败

在C++中:

const 是常数的意思

const int 类型数据不能修改

int 类型数据可以修改

const的几种使用方法

,它们使 class 接口比较容易被理解。这是因为,得知哪个函数可以改动对象内容而哪个函数不行,很是重要。

(1)const定义常量:

const dataType constData=value;//const修饰的类型为dataType如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可! 的变量value不可变.

(2)指针中使用const,主要有三种方式

a.指针本身是常量,它本身不可变

char const ptr;

b.指针所指向的内容是常量,指向的内容不可变

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修饰成员变量

class A

{A(int x): val(x) { } ; //在初始化列表中定义

}b.使用const修饰类的成员函数,如 int getNum(int a)const;

c.使用const修饰类的对象,或者类对象引用或指针

这对象中的所有数据成员都不能被修改,对于对象指针或对象引用也一样。

在这种情况下,同时不能通过对象名调用对象中的非const成员,这符合安全规则。

Const是什么意思

数学中const volatile int a =5; int p = (int )&a; p = 2; 打印a的结果为2:

const,数学中的常数(或常量、恒量),constant的缩写,也常缩写为大写C。数学中的常量,即不随变化而变化的量,通常指数字。

编程语言c.两者都不可变中:

const是一个C语言的关键字,它限定一个变量不允许被改变,产生静态作用。

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

constant!

关键字const放在号和什么之间+A+文件+B+数据+C+指针?

const是一个C语言(ANSIC)的关键字,使用const在一定程度上可以提高程序的安全性和可靠性。

用于修饰指针的两种放printf(“the &a is %p, the buf is %p置位置不同,语义也不同

当const的位置处在数在一种情况下,指针是只读的,也就是 p3 本身的值不能被修改;在前面两种情况下,指针所指向的数据是只读的,也就是 p1、p2 本身的值可以修改(指向不同的数据),但它们指向的数据不能被修改。据类型之前时:常量指针

const int ptr = &aa;

指针指向的内容不可修改; 当const的位置处在数据类型之后时:指针常量

int const str = &aa;

指针本身不可修改

当const的位置在数据类型的两边时: 指向常量的常指针

const int const ppa = &aa;

既不能改值,也不能改指向。

C++ 中 extern const 的用法?

转给你个详细的东西:

用例子给你

int x = 10;

// 2.cpp 注意没有包含1.cpp

extern int x;

{ cout << x << endl; }

//则输出10

两个文件同在一个项目(project)中,你不包含某个文件(cpp)而可以用使用const修饰类的成员函数,表示成员常量,它只能在初始化列表中赋值。如:它内部定义的变量,(里是.pp不是.h, 因为在.h中定义的数据不能在.cpp中用除非这个.cpp包含这个.h文件)

例:

// 1.h

void print()

{std::cout << "hello!" << std::endl;

// 以上两句在这个例子中可以不要

extern void print();

{print();

}就会出错因为1.h中的void print();在不包含它的文件中是不可调用的,即使在声明了extern 也于事无补,如果你将这个例子中的1.h名字换成1.cpp就对了!

从这些可以看出来,extern在这里起的作用是告诉编译器,你这个print()已经在某个.cpp中已经定义了,这里只不过是声明一下有这个东西,然后拿来用一下。定义只能出现一次,声明却可出现多次,也就是说extern声明可在多个文件中用(包括.h)

还有,你还可以屏蔽extern声明,如第二个例子中的第二个.cpp文件可以改成

// 这里以上两句不能省略,因为,这里extern void print();函数已经不起作用了,在这里调用的而是本文件中定义的void print()函数,其中用到了cout,endl;他们来源于std::

extern void print();

void print()

{cout int main<< "world!" << endl;

}int main ()

{print();

}// 输出结果为world!

还有一个extern "C"就不用说了,用这个可以允许C++程序中调用C的函数

在a.cpp中定义extern const double pi=3.14; b.pp中extern const double pi;可以通过编译运行。在a.cpp中定义const double pi=3.14; b.pp中extern const double pi;编译失败。

没有看懂!

变量用extern 表示外部变量。后面没有赋值表示引用其它地方的,叫声明变量,有赋值就是定义一个全局变量与不用extern是一样的。extern "C"加在变量前没有什么意义,函数才有意义。C语言的函数是加下划线到函数名前,如定义一个void func(),实际的函数名就是_func,C++的就很复杂了,而且不同的编译器也不一样,主要是要处理函数重载,它会把参数的类型通过一个的命名规则把它加到函数名上去,加上extern "C"可以强制它与C语言的命名规则来处理。没有什么谁比谁规范的。

C++在函数声明时,后面跟个const是什么意思?

C++在函数声明时,后面跟个const是限定函数类型为常成员函数, 常成员函数是指不能改变成员变量值的函数。

例如“doub}// 2.cpple d() const;”,其中的其中的“const”限定了d()函数中不能有任何改变其所属对象成员变量值的功能,如果有则会在编译阶段就报错。

它的主要作用就是能使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明。在需要增加可读性和减少逻辑出错的情况下,就可以用这种形式。

我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值。如果把不改变数据成员的函数都加上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

参考资料来源:

C++在函数声明时,后面跟个const是限定函数类型为常成员函数, 常成员函数是指不能改变成员变量值的函数。

例如“double d() const;”,其中的其中的“const”限定了d()函数中不能有任何改变其所属对象成员变量值的功能,如果有则会在编译阶段就报错。

它的主要作用就是能使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明。在需要增加可读性和减少逻辑出错的情况下,就可以用这种形式。

扩展资料:

简单介绍

二、》》const与指针和引用。

1、const与指针。int t;

先来看看下面的几种定义:

int me;

const int p1 = &me;//p1可变,p1不可变,此时不能用p1来修改,但是p1可以转向

int const p2 = &me;//p2不可变,p2可变,此时允许p2来修改其值,但是p2不能转向。

const int const p3 = &me;//p3不可变,p3也不可变,此时不能用p3来修改其值。

2、指针和引用的区别很简单,就是引用更简洁,更安全。因为引用声明时必须初始化。 引用更接近const指针,一旦与某个变量关联,就将一直效忠于他。

3、const指针可以接受const和非const地址,但是非const指针只能接受非const地址。所以const指针的能力更强一些,所以尽量多用const指针,这是一种习惯。

参考资料来源:

非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为 const指针,决定了在该成员函数中,任意修改它所在的类的成员的作都是不允许的(因为隐含了对this指针的const引用);的例外是对于 mutable修饰的成员。加了const的成员函数可以被非const对象和const对象调用,但不加const的成员函数只能被非const对象调 用。例如:

class A

{private:

int m_a;

public:

A() : m_a(0) {}

int getA() const { return m_a; //同return this->m_a;}

int GetA() { return m_a; }

int setA(int a) const

{m_a = a; //这里产生编译错误,如果把前面的成员定义int m_a;改为mutable int m_a;就可以编译通过。

}int SetA(int a)

{ m_a = a; //同this->m_a = a;

}};

A a1;

const A a2;

t = a1.getA();

t = a1.GetA();

t = a2.getA();

t = a2.GetA(); //a2是const对象,调用非const成员函数产生编译错误。

const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。

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

const的作用:

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

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

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

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

扩展资料:

C++技术应用:

1、科学计算

在科学计算领域,FORTRAN是使用最多的语言之一。但是C++凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。

2、网络软件

C++拥有很多成熟的用于网络通信的库,其中有代表性的是跨平台的、重量级的ACE库,该库可以说是C++语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。

3、作系统

参考资料来源:

const修饰说明它是一个常量,它的值是不能被修改的。没有什么地方是必须要用的,你只要觉得这个数字你不会改变就可以用。一般在函数传递参数中用的比较多,你可以看看C语言的库函数参数中很多都是用const修饰的。

比如字符串拷贝的声明函数char strcpy(char dest,const char src); 后边的形参用了const修饰,在函数定义中src的值就不能被改变,dest的值就可以被改变,也是一种提示的作用说明字符串是从src拷贝到dest中

这儿的const就是说这个函数作不会对变量或是对象之类的值有影响 比如你有一个human类 你现在要得到某个human类对象A的age 那么肯定是不会因为你想得到这个值而改变了age的大小 对吧 那么你就可以写一个函数int getAge()const这样就好 这么做是为了防止你在函数中对不应该在这里改变的量不小心进行了改变

const Stock land =Stock("hyd");

land.show();

land 是常量,但是类成员函数 show 无法保证不修改 land,所以编译器将拒绝执行该段代码。除非你能保证 show 像 const 函数一样,但这需要另外一种语法,即:

void show() const; (声明)

void Stock::show() const {}; (定义)

const 的用法在 C++ 里是很有讲究的 参考一下 《Effective C++》吧

以下摘自其中条款三

const 成员函数

将const 实施于成员函数的目的,是为了确认该成员函数可作用于const 对象身上。这一类成员函数之所以重要,基于两个理由。

第二,它们使"作 const 对象"成为可能。这对编写高效代码是个关键,因为如条款 20 所言,改善 C++ 程序效率的一个根本办法是以 pass by reference-to-const 方式传递对象,而此技术可行的前提是,我们有 const 成员函数可用来处理取得(并经修饰而成)的 const 对象。

简而言之 const 在这里是修饰 函数 的

为什么类里要有const函数,const函数在类里有什么作用?

const int val; //成员常量

const 对于类的封装是很有好处的,要知道用const定义后,其值是不能随便改变的,相当于一个常量。如果类中的成员能随便改变其属性,类就会很混乱,代码的重复利用就,不利于编程。

using namespace std;

有两种const函数,声明如下:

1、const T func();

2、T func() const;

种表示返回的是const的类型,也即返回的值不能作为左值,楼主懂的。

第二种表示该成员函数不能修改其成员变量的值,即该函数不能改变任何该类的非静态成员的值。

c语言中const 是什么意思?

const char ptr;

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

int main

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

作用:

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

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

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

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

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

在C语言中用const定义的变量如何修改

这段摘自百度百科:

首先是处理时间上的不同,#define宏是预处理命令,是在编译前的预处理阶段完成的。而const是在编译阶段完成的。然后是效果上的不同,const会进行严格的类型检查,而#define宏则只是简单的替换,不会进行类型检查。再就是功能上的不同,const一般用来定义文字常量,其功能相对单薄,而#define由于其简便性,可以在许多方面达到意想不到的效果,比如mfc中用到了许多宏完成了复杂的rtti机制,序列化机制,等等。而这些都是const无法达到的效果的。另外#define宏用得比较多的地方就是防止头文件的重复包含了。这一点也是const无法做到的。

指针

两种修改{const int a;方法

1: int const pci

指针指向的对象被const成常量,指针本身是整型,可以修改,但不能修改指针指向对象的值。

2: int const pci

第二种则是这个指针本身被const成常量,指针不能修改,可修改指向的整型。

参考书籍《C和指针》,三剑客的书都敲一遍,然后你就悟了...

const定义的是常量,运行中不能改,再间接的方式也不能改,这不符合规定。

想改的话就不要定义成const常量

“我指的是如何用一种间接的方式使得用const定义的变量在程序运行中可以被修改”,不知道你用的是何种间接的方式,贴出来分离一下??

C语言中,const如何修饰全局变量、局部变量?有什么好处?

using namespace std;

const常量,也称只读常量,必须初始化,且初值不能改变。如 const int MAX=10;(const常量MAX) 而MAX=100;就是非法的。好处是它的空间可以传址,只要在“只读”函数的参数表中增加“只读”const 标志,与“只读”数据的const标志对应,那么,编译器可在编译阶段,对函数调用中的const常量传址的合法性进行检查。

在该领域,C语言是主要使用的编程语言。但是C++凭借其对C的兼容性,面向对象性质也开始在该领域有一席之地。

受教了,学习了!