const C语言中const是什么意思。。。
很多朋友对于const和C语言中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();
}
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是什么意思。。。
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在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。
在c中,对于const定义的指针,不赋初值编译不报错,int* const px;这种定义是不允许的。(指针常量定义的时候对其进行初始化)int const*px;这种定义是允许的。(常指针可以再定义的时候不初始化)
但是,在C++中int* const px;和const int* const px;会报错,const int* px;不报错。必须初始化指针的指向int* const px=&x;const int* const px=&x;强烈建议在初始化时说明指针的指向,防止出现野指针!
参考资料来源:百度百科—CONST
OK,关于const和C语言中const是什么意思。。。的内容到此结束了,希望对大家有所帮助。