如果我在c ++上有一些表达式:
const int x = 3;
我可以说x是变量吗?这似乎很奇怪因为x不可变因为我无法改变它,感谢提前任何扩展
被修改 附:感谢所有的答案,我理解根据C ++的定义,我的问题的答案可能是肯定的,你知道其他一些语言,其中我的问题的答案是否定的?
答案 0 :(得分:5)
是。 x
是一个变量,即使你不能(合法地)改变它的值。
实际上,在C ++中,具有名称的对象是“变量”。
答案 1 :(得分:1)
这是哲学的,它无法修改,实际上像GCC这样的编译器将它存储在Text-section中。 所以或者是一个不可修改的变量,或者是一个常数。
答案 2 :(得分:1)
在C ++术语中,术语变量几乎与术语对象同义:任何声明的对象是变量。对象是否可更改没有任何区别。因此,在官方术语中,x
是一个变量。
答案 3 :(得分:0)
在C ++的ISO语言定义中,此对象称为 const变量,表示只读变量。在概念上和自然语言语义中,它仍然是不变的。
我想这个术语仅用于区分常量对象(例如示例中的x
)和文字常量(例如3) ),其中一个是可寻址对象,另一个不是。未使用术语const object
,因为对象引用内存中的实例,而变量引用与对象关联的名称或标识符。
答案 4 :(得分:0)
BTW它对函数声明很有用,例如
void ReadStuff(const int a)
这意味着你实际上可以给函数一个非静态变量但是 它将被视为常量(即函数不会改变它)。