0
我得到了指針變量的存儲位置可以請人幫我有點困惑。指針變量存儲在哪裏以及編譯器如何訪問正常變量?
int *ptr; //where this pointer stored
int p; //how compiler can access this variable(using address or what?)
指針通過地址訪問什麼關於正常變量...?
請建議我去學習C最好的網站...
我得到了指針變量的存儲位置可以請人幫我有點困惑。指針變量存儲在哪裏以及編譯器如何訪問正常變量?
int *ptr; //where this pointer stored
int p; //how compiler can access this variable(using address or what?)
指針通過地址訪問什麼關於正常變量...?
請建議我去學習C最好的網站...
的指針被存儲就像在存儲器中的任何其他正常的變量。確切位置在哪裏取決於它是否是一個局部變量,在這種情況下,它被存儲在堆棧或全局或靜態變量,在這種情況下,它被存儲在全局單獨的內存部分。
不知道你的編譯器訪問這裏指的是什麼,但是你作爲一個程序員可以直接訪問變量,你可以在一個指針的地址存儲然後直接訪問它。
a = p; //Direct access
int *ptr;
ptr = &p;
a = *ptr; // Access the variable indirectly.
至於你的第三個問題,推薦一個網站,它超出了StackOverflow的範圍。
[C中指針和全局變量的位置]的可能重複(http://stackoverflow.com/questions/3113668/location-of-pointers-and-global-variables-in-c) – rsp
簡而言之* a指針是一個普通的變量,它保存一個地址作爲它的值*,而一個變量是一個標籤到一個內存地址,它保存一個直接值*。您可以取消指針以獲取指針所保存地址的直接值。 –
我投票關閉這一問題作爲題外話,因爲所要求的信息的範圍是很容易發現的都在這裏,並在任何C手動或教程。 –