const integer simple

const integer simple

本文关键字:simple integer const      更新时间:2023-10-16

我正在尝试通过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有一些随机的垃圾值,j42的值)。你所能做的就是给赋一个新值:

i = 43;
j = 44;

当变量为const时,不能赋一个新值。您仍然可以初始化,但是一旦初始化,它就永远不会改变。

所以const int i = 44是完全有效的,因为你是初始化一个新的变量,而不是赋给一个新的值给一个现有的变量。