Tôi không hỏi ý nghĩa của stack/heap/static hoặc khác nhau giữa chúng. Tôi hỏi khu vực một đối tượng const trong?Khu vực bộ nhớ nào là đối tượng const trong C++?
C++:
#include <cstdio>
using namespace std;
const int a = 99;
void f()
{
const int b = 100;
printf("const in f(): %d\n", b);
}
int main()
{
const int c = 101;
printf("global const: %d\n", a);
f();
printf("local const: %d\n", c);
return 0;
}
đó diện tích bộ nhớ là a
, b
và c
trong? và tuổi thọ của chúng là gì? Có bất kỳ sự khác biệt nào trong ngôn ngữ C không?
Nếu tôi lấy địa chỉ của họ thì sao?
Nếu bạn không lấy địa chỉ của họ, chúng có thể sẽ được tối ưu hóa. – Antimony
Có thực sự không cần cho họ được trong bất kỳ khu vực bộ nhớ nào cả. Trình biên dịch có thể tối ưu hóa tất cả các biến đó đi. 'const' làm cho không có sự khác biệt với tuổi thọ của một biến. – john
@Antimony Bạn có thể cung cấp thêm chi tiết, cảm ơn rất nhiều. :] – imsrch