1
據我所知,指針保存一個值的地址,引用可以被認爲是const
指針。引用和指針在哪裏執行?
從這個示例代碼:
int main() {
int i = 1;
int &ri = i;
int *pi = &i;
return 0;
}
拆卸,既指針和參考長得一模一樣:
main:
push ebp
mov ebp, esp
sub esp, 16
mov DWORD PTR [ebp-12], 1
lea eax, [ebp-12]
mov DWORD PTR [ebp-8], eax
lea eax, [ebp-12]
mov DWORD PTR [ebp-4], eax
mov eax, 0
leave
ret
是指針和引用只能由編譯器執行呢?
努力理解「強制」的含義。他們是語言功能,他們正在按預期工作 –
順便說一下,檢查未優化的程序集是一種糟糕的學習方式,因爲您只能真正瞭解某個特定實現的實現細節。你可能會忽略這樣一個事實,即int ri = 1; int&i = ri;'會有相同的行爲。 –