由编译器决定,一般不会分配空间,而是直接生成在指令中
比如
int main()
{
0042D740 push ebp
0042D741 mov ebp,esp
0042D743 sub esp,0E4h
0042D749 push ebx
0042D74A push esi
0042D74B push edi
0042D74C lea edi,[ebp-0E4h]
0042D752 mov ecx,39h
0042D757 mov eax,0CCCCCCCCh
0042D75C rep stos dword ptr es:[edi]
const int& i = 100;
0042D75E mov dword ptr [ebp-14h],64h
0042D765 lea eax,[ebp-14h]
0042D768 mov dword ptr [i],eax
int a = i + 100;
0042D76B mov eax,dword ptr [i]
0042D76E mov ecx,dword ptr [eax]
0042D770 add ecx,64h // 这个100在指令中
0042D773 mov dword ptr [a],ecx
return 0;
0042D776 xor eax,eax
}