虽然课程中说引用得引一块合法的内存空间 比如说栈区上的数据 堆区上的数据 而10是常量区的 随意说 常量区的除了有这种10常量 还有啥呢

我在学习常量引用那一块 遇到了一个问题 就是正常的代码是 int a=10; int &b=a; 这个可以理解 然后课程中说到了这个东西 说不能int & b=10; 程序会报错 会提示 非常量引用的初始值必须为左值?这句话是什么意思呢? 虽然课程中说引用得引一块合法的内存空间 比如说栈区上的数据 堆区上的数据 而10是常量区的 随意说 常量区的除了有这种10常量 还有啥呢?

int &b是引用类型,你只能对一个变量进行引用,不能引用一个常量,因为常量是不可修改的
而且引用类型里存的是被引用的变量的地址,除字符串常量之外的常量也根本没有地址可供引用
常量基本就那么几种,
0,int型常量
12d,double型常量
13L,long型常量
14u,unsinged int型常量
3.14,double型常量
3.14f,float型常量
'1',字符型常量
"123",字符串常量