in C++ 其中靜態或非靜態變量保持不變嗎?我的意思是在記憶中。C++ static non-static
和,什麼時候初始化靜態或非靜態變量?
需要有人幫助我明白我的想法。 謝謝!
和C呢?相同?
in C++ 其中靜態或非靜態變量保持不變嗎?我的意思是在記憶中。C++ static non-static
和,什麼時候初始化靜態或非靜態變量?
需要有人幫助我明白我的想法。 謝謝!
和C呢?相同?
它們可以到達編譯器(或鏈接器或加載器)想要將它們放入內存中的任何位置,C和C++標準不要求這種詳細程度。他們只強制執行行爲。
通常,靜態成員在程序啓動時(包括在編譯時,以便它們只是在已初始化的狀態下加載)或在第一次使用之前立即初始化一次。
很好(並小心翼翼)措辭。 – 2011-03-14 06:01:12
非靜態成員駐留取決於對象是如何實例化的。
class foo
{
int num ; // Non-Static member
// ....
};
foo obj ; // In this case `num` resides on stack. In fact, obj it self resides on stack
foo *temp = new foo; // In this case `num` resides on heap or in memory location acquired from the free store.
我不確定靜態成員。
靜走在同一個地方的全局,這往往由編譯器來決定,當程序被加載並持續創建,直到節目結束
非靜走到哪裏,無論你把它們(在堆棧或堆上)
也許你會發現一些材料在這裏有趣:http://stackoverflow.com/questions/5162580/what-happens-when-a-computer-program-runs – Muggen 2011-03-14 05:48:56