const integer simple
const integer simple
我正在尝试通过c++介绍
这里写着"•const int i = 3//不能改变const变量的值"
但是我的代码
#include<iostream>
using namespace std;
int main()
{
const int i = 44;//trying
cout<<i;
return 0;
}
工作为什么?我也在Windows 7中使用代码块
你永远不会改变i
的值,对吗?
const int i = 44; // initialization - OK
i = 44; // assignment - not OK
语句const int i = 3
告诉c++编译器i
是一个int类型的变量,它是一个常量,值为3。
这意味着任何进一步改变i值的尝试都将导致编译错误。在您的示例代码中,您不能在第一次初始化后更改I的值。
const意味着一旦设置,就不能在执行过程中更改该变量的值。但是,该值可以第一次设置为任何值
您的变量i
被声明为const
,这意味着它只能初始化,但不能在以后的代码中更改。然而,如果所有常量都必须具有值3
,那就没有意义了,你同意吗?在初始化时,你可以把它设为任何你喜欢的整数值;但是编译器不允许你在以后的代码中修改它;试试这个,它会给你一个编译错误:
const int i = 3;
// ...
i = 44; // <- here the compiler will complain, saying that i was declared const
它可以工作,因为您没有在代码中更改"i"的值
const int i = 44; // Initialization of a const value, OK.
cout << i; // Just reading the value, this is OK
i = 44; // This will not work because you can't change the value of a const type.
之所以有效,是因为c++中初始化和赋值是不同的。
声明变量时,可以选择初始化它:
int i; // i is uninitialized
int j = 42; // j is initialized
在之后,一旦变量存在,就不能再初始化它了。它有它现在的值(i
有一些随机的垃圾值,j
有42
的值)。你所能做的就是给赋一个新值:
i = 43;
j = 44;
当变量为const时,不能给赋一个新值。您仍然可以初始化,但是一旦初始化,它就永远不会改变。
所以const int i = 44
是完全有效的,因为你是初始化一个新的变量,而不是赋给一个新的值给一个现有的变量。
相关文章:
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 为什么别名声明不是有效的 init 语句(/simple-declaration)?
- 使用IPC/共享内存将Integer数组从C++传递到Python
- C++ OpenCV Randu 函数抛出'Integer division by zero'
- 如何在满足常量表达式的同时将整数传递给指针,传递给 std::array<double、integer>?
- 在C++初始化程序列表中使用Integer Literals
- 为什么选择 g++ 给予者:"error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]"
- 如果我获得Integer和Double的产品,输出的数据类型是什么
- SImple 代码在 DevC++ 中正确运行,但不能在 Visual Studio Code 中正常运行
- C Integer在C 代码中使用时会失去其恒定状态
- 将 int 与 double 进行比较的预处理器"invalid integer constant expression"
- 编译 C++ 代码时"Error: comparison between pointer and integer"
- Bitwise integer concationation
- DIS(P X)-X在GCC Linux X86-64 C 中始终导致Pointer P和Integer X的P
- 将cryptopp :: Integer转换为lpctstr
- 如何在C++中为integer、float和double数据类型同时重载运算符
- 初始化Integer字面形式到std :: size_t
- OpenCV文档说"uchar"是"unsigned integer"数据类型。如何?
- Arduino Integer error
- const integer simple