变量赋值和文字常量之间的区别?

时间:2015-03-31 09:49:10

标签: c++ c variables types constants

我对为变量和文字常量赋值给我感到有点困惑。

例如:

int age = 20;

age是一个变量,20是分配给它的值。

int AGE = 20; 

AGE是字面常量,20是分配给它的值。

有什么区别?常量会将主内存中的两个字节作为变量吗?

6 个答案:

答案 0 :(得分:9)

你确实很困惑:

 int age = 20;

将整数值20赋给变量age

int AGE = 20;

将整数值20赋给变量AGE

没有区别。

答案 1 :(得分:4)

int AGE = 20; 
     

AGE是文字常量,20是分配给它的值。

不,AGE是一个变量,与age相同(但名称不同)。

宣布一个常数:

const int AGE = 20;

直接使用文字常量(现代C ++中不鼓励):

#define AGE 20 // every time you use AGE, the literal "20" will be used instead

答案 2 :(得分:2)

你的情况没有区别:

int age = 20;

是一个名为" age"的变量。价值20。

int AGE = 20;

是一个名为" AGE"的变量。价值20。

如果要使用const前缀在代码中声明具有特定类型的常量:

const int AGE = 20;

在其他情况下,您可以使用#define预处理器:

#define AGE 20;

变量和常量(或文字常量)之间的差异是,一旦定义了常量,就不能改变它的值。

答案 3 :(得分:1)

  

AGE是文字常量,20是分配给它的值。

不正确!

您无法为文字常量指定值。文字常量是赋给变量的值。

我最初感到困惑,因为我的教科书和在线资源给出了“int mynum = 20;”作为文字常量的一个例子,“int anum = 20;”作为变量的一个例子。

直到我读了100多次,才意识到“mynum”和“anum”都是变量而20是文字常量。

答案 4 :(得分:0)

常量文字就像常规变量一样,占用相同的大小。唯一的区别是常量变量的值不能改变。我们使用关键字const来表示常量变量

const int AGE=20;

我们将常量变量大写以区别于常规变量。

答案 5 :(得分:0)

  int AGE = 20; 
  

AGE是文字常量,20是分配给它的值。

AGE只是一个变量名,20是一个文字常量。更多信息http://www.cplusplus.com/doc/tutorial/constants/