变量与常量

时间:2014-07-29 08:18:06

标签: asp.net objective-c vb.net

我想知道变量和常量的差异,因为我在前同事写的代码中看到了变量/常量的不同声明。

我知道变量是可以在整个代码中改变的东西,而常量的值是固定的,不能改变。到目前为止,我已经在变量中写了所有内容(即使变量不会改变)。这是我的做法不正确吗?也许我的代码并不复杂,因此我一直使用变量。

无论如何,如果我的理解被证明是错误的,请赐教我这方面的正确指导方针。

2 个答案:

答案 0 :(得分:1)

   const int const_a = 10;
   int static_a = 70;

    public void sample()
    {
        static_a = const_a+10; //This is correct
       // const_a=88; //It is wrong
    }

在上面的例子中,如果我们将变量声明为const,我们就无法从任何地方分配值,但我们可以使用该变量。

答案 1 :(得分:1)

尽可能使用常量是一种很好的代码实践。

在运行时/编译时,可以知道只能对这些值进行读操作,因此会自动对代码进行一些访问/ IO优化,这将显着提高性能。

另一个区别是常量存储在代码的不同预分配部分(依赖于编译器,但在大多数编译器上都是这样),这使得它们更容易访问,并且它们不会被分配/取消分配所有的时间(所以另一个性能优化)。

最后,常量可以在编译时进行评估。

例如,如果你有一些常量,如下所示:

 float a = const1 * const2 / const3 + const4;

然后整个表达式将在编译时进行评估,在运行时保存周期(因为值总是相同的)。 一些引用此类优化的流行常量是PI,PI / 2,PI / 4,1 / PI。