运行时分配的函数中的常量变量

问题描述 投票:1回答:1

我最近意识到我的C ++代码中包含以下内容,并且它可以编译并运行而没有任何问题。

void MyClass::foo(int a) {
    const double x = a;
    ...
    //do stuff with x
    ...
}

我的问题:我以为const变量在编译时分配了一个值,这会给我一个编译错误,尽管在这种情况下,显然是在运行时分配的。这里的const说明符会被忽略吗?还是还有其他更复杂的事情?我应该删除const说明符吗?

c++ function const
1个回答
0
投票

常量变量在初始化时(在运行时)分配了一个值,以后不能修改。指向常量变量的引用和指针只能用于从这些变量中读取,基础变量是否为常量。

我以为const变量在编译时分配了一个值

您所描述的是C ++ 11 constexpr变量。

© www.soinside.com 2019 - 2024. All rights reserved.