C++:关于"常量引用"不理解

如果是对一个常量进行引用,则编译器首先建立一个临时变量,然后将该常量的值置入临时变量中,对该引用的操作就是对该临时变量的操作。"对常量的引用可以用其它任何引用来初始化,但不能改变."

前面说的都理解 最后一句话是什么意思呢?

  如果是对一个常量进行引用,则编译器首先建立一个临时变量,然后将该常量的值置入临时变量中,对该引用的操作就是对该临时变量的操作。对常量的引用可以用其它任何引用来初始化;但不能改变。

  关于引用的初始化有两点值得注意:
  (1)当初始化值是一个左值(可以取得地址)时,没有任何问题;
  (2)当初始化值不是一个左值时,则只能对一个const T&(常量引用)赋值。而且这个赋值是有一个过程的:
  首先将值隐式转换到类型T,然后将这个转换结果存放在一个临时对象里,最后用这个临时对象来初始化这个引用变量。
  例子:
  double& dr = 1; // 错误:需要左值
  const double& cdr = 1; // ok
  第二句实际的过程如下:
  double temp = double(1);
  const double& cdr = temp;
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
const int a;这就是一个常量,他能赋给任何其他与他一样的类型的变量,如int b,int c或者long d,前面都是没有const的哦!!就是说可以是这样子的 b = a;c = a;d = a;把a的值赋给没有带const的类型都可以!!但是如果你要把其他类型的赋给a那都是不行的!!例如 a = b;a = c;a = d;都是不行的!!因为const的原因!!const的用意是把这个值死死的锁死了!!不能改变的!!懂吧!!这都是解释不能改变的!!
”对常量的引用可以用其它任何引用来初始化“:这却是说const int a = 4;如果你只是刚开始的建立变量,那么你给他初始化是没问题的!!但是之后你却不能改变它的值,如果你硬生生的改变它的值,程序就会出错!!

对哦!!我刚才上面第一行说的赋给其他与他一样类型的变量,其实也不止只是一样的类型才能赋值,可以用其他函数去强制改变其类型,这个我就不详细回答了!!以后你自然会遇到了!!追问

前辈啊 那我引申一下
是不是说:
常量引用:不能通过该引用去改变被引用变量的值
常量指针:不能通过该指针去改变被指向变量的值

和被指向或被引用的值具体是不是const的没有关系是吧?

追答

你还是举个例子给我吧!!我对文字的东西不敏感,对数字,字母就敏感!!

本回答被提问者采纳
第2个回答  2015-10-30
1、全局变量只有一种定义方法,就是定义在函数外面
全局变量太长而言可以用变量也可以用宏
2、例如:
const double pi=3.14;
#define PI 3.14
第3个回答  2012-11-12
不能赋值
相似回答