c++const定义的变量可以改变吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++const定义的变量可以改变吗相关的知识,希望对你有一定的参考价值。

#include"iostream.h" int s; int plus( const int&x,int&y) x++; s=x+y; return s; void main() int a(5),b(10),c; c=plus(a,b); cout<<a<<","<<b<<","<<c<<endl;

c++const定义的变量不可以改变。如果要改,需要强转,但是不建议,const引用就是为了不让你改变引用的值。
C++是在C语言的基础上开发的一种通用编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++14于2014年8月18日公布。[1] 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大受用的最强大编程语言之一,支持类:类、封装、重载等!
参考技术A const定义的都不是变量,都是常量,包括常对象,常引用等都不能被改变 本题定义的是常引用作为函数形参值,作用是:提高效率节省时间空间的开销,又能保护实参数据值不被改变。

按你追问的,可以把函数改一下:
#include"iostream.h"
int s;
int plus( const int&x,const int&y)

int X,Y;
X=x+1;
Y=y+1;
s=X+Y;
return s;

顺便说一下,C++的预处理指令最好写成#include<iostream>,且最好不要定义全局变量。
如果定义了全局变量,也用不着把S的值传递给C,在主函数里直接输出S即可。
参考技术B 可以改变的,const不过是编译器设置的一个保护,使用const_cast即可改变其属性,我举个例子
const int val = 10;
const_cast<int&>(val) = 5;
Ok,这样val就被改变了,但你改变Const需要知道自己做啥
参考技术C 你这里const int&x是const型引用,是不能修改的,const型引用主要是为了节省实参拷贝的浪费 参考技术D 不可以
如果要改,需要强转,但是不建议
const引用就是为了不让你改变引用的值追问

#include"iostream.h"
int s;
int plus( const int&x,const int&y)

x++;
y++;
s=x+y;
return s;

void main()

int a(5),b(10),c;
c=plus(a,b);
cout<<a<<","<<b<<","<<c<<endl;
想得到不变的a,b值即(a=5,b=10),又想得到改变的s值即s=17,高手支招

追答

形参中的变量值做好不要随便修改该,可以定义两个新的变量接收原来的值,或者不用引用
int plus(int x, int y)

x++;
y++
s=x+y;
return s;

或者
int plus(const int &x, const int &y)

int xx, yy;
xx = x;
yy = y;
s = (++xx) + (++yy);
return s;

本回答被提问者采纳

以上是关于c++const定义的变量可以改变吗的主要内容,如果未能解决你的问题,请参考以下文章

arduino定义引脚为啥要用const??不用可以吗 const int ledPin=13;

const关键字总结

c语言中const 是啥意思,怎么用,啥时候用?

define定义的常量可以改变吗

static和const变量有什么区别?

JS中的const命令你真懂它吗?