const整数简单

时间:2011-12-29 10:45:46

标签: c++ const

我正在尝试通过C++ Intro

它写在那里“•const int i = 3 //不能改变const变量的值”

但是我的代码

#include<iostream>
using namespace std;

 int main()
{

const int i = 44;//trying 
cout<<i;
return 0;
}

作品       为什么?          我也在Windows 7中使用代码块

6 个答案:

答案 0 :(得分:1)

您永远不会更改i的值,对吗?

const int i = 44; // initialization - OK

i = 44; // assignment - not OK

答案 1 :(得分:1)

语句const int i = 3告诉c ++编译器i是int类型的变量,它是一个常量并且值为3.

这意味着任何进一步尝试更改i的值都将导致编译错误。在您的示例代码中,您无法在第一次初始化后更改i的值。

答案 2 :(得分:0)

您的变量i声明为const,这意味着它只能初始化,但以后无法在代码中更改。但是,如果所有常数都必须具有3的值,那么你是不是没有意义,不同意吗?因此,在初始化时,您可以将其设置为您喜欢的任何整数值;但编译器不允许您稍后在代码中更改它;试试这个,它会给你一个编译器错误:

const int i = 3;
// ...
i = 44;   // <- here the compiler will complain, saying that i was declared const

答案 3 :(得分:0)

const表示一旦设置,就不能在执行期间更改该变量的值。但是,值可以在第一次设置为任何值。

答案 4 :(得分:0)

它有效,因为您没有更改代码中“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.

答案 5 :(得分:0)

它的工作原理是因为初始化赋值之间的C ++存在差异。

声明变量时,您可以选择初始化它:

int i; // i is uninitialized
int j = 42; // j is initialized

在此之后,一旦变量存在,您就无法再初始化它。它具有现在的任何值(i具有一些随机垃圾值,j具有值42)。你所能做的就是为其分配一个新值:

i = 43;
j = 44;

当变量为常量时,您无法为其分配新值。你仍然可以初始化它,但是一旦它被初始化,它就永远不会改变。

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