【问题标题】:Difference between variable assigning and literal constant?变量分配和文字常量之间的区别?
【发布时间】:2015-06-04 14:41:52
【问题描述】:

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

例如:

int age = 20;

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

还有:

int AGE = 20; 

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

有什么区别?常量会在主内存中占用与变量相同的两个字节吗?

【问题讨论】:

  • int AGE = 20; "AGE" is literal constant,...为什么会这样?
  • 在您的问题中,int ages = 20int AGE = 20 是相同的。唯一的区别是我看到了变量名:D
  • 在第二个版本中,你的意思是#define AGE 20
  • const int age = 20; 会不同,#define AGE 20 会很不同
  • 另外,在大多数现代系统上,int 变量将消耗四个字节的内存。但是 const int 可能不需要。

标签: c++ c variables types constants


【解决方案1】:

你确实很困惑:

 int age = 20;

将整数值 20 赋给变量 age

int AGE = 20;

将整数值 20 分配给变量 AGE

没有区别。

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

      【解决方案3】:

      常量文字就像常规变量,占用相同的大小。唯一的区别是恒定变量的值无法改变。我们使用关键词const表示常量变量

      const int AGE=20;
      

      我们将常量变量大写,以便将其与常规变量区分开来。

      【讨论】:

      • 文字常数可能不采用任何空间,如果编译器将常数直接替换为装配说明。 span>
      【解决方案4】:
        int AGE = 20; 
      

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

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

      【讨论】:

        【解决方案5】:

        你的情况没有区别:

        int age = 20;
        

        是一个名为“age”的变量,值为 20。

        int AGE = 20;
        

        是一个名为“AGE”的变量,值为 20。

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

        const int AGE = 20;
        

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

        #define AGE 20;
        

        变量和常量(或字面常量)的区别在于,常量一旦定义,就不能改变它的值。

        【讨论】:

          【解决方案6】:

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

          不正确!

          您不能为文字常量赋值。文字常量是分配给变量的值。

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

          直到我读了 100 遍之后,我才意识到“mynum”和“anum”都是变量,而 20 是字面常量。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-08-11
            • 2018-09-27
            • 1970-01-01
            • 2018-10-23
            • 1970-01-01
            • 1970-01-01
            • 2016-10-22
            相关资源
            最近更新 更多