C++中的int和const int

use*_*19o 2 c++ arduino

当我问到C++中int和const之间有什么不同?有人这样说.

可以在需要时修改int,它是读/写,而const int是只读的.(可以动态更改).您可以将const int用于类似固定值的内容,并且const int内存使用率小于普通int.

这是真正的const int内存使用量是否小于普通int.在C++中?

Pet*_*ker 6

它可能会也可能不会,取决于它的使用方式.大多数编译器非常聪明,const如果他们不需要它,就不能为对象创建存储.所以,例如:

void f() {
    const int arr_size = 10;
    int arr[arr_size];
    // do something with arr
}
Run Code Online (Sandbox Code Playgroud)

这里,唯一的用途arr_size是指定数组的大小.没有必要为此创建一个int对象; 编译器只是创建一个大小为10的数组.

另一方面:

void f(const int* ip) {
    // do something with ip
}

int main() {
    const int n = 100;
    f(&n);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这里,编译器必须为其创建一个int对象n,因为代码的地址为n.

  • @ zett42 - 我**真的**不想去寻找防弹插图的rathole.你明白那个例子,不是吗? (2认同)