class a }
class b
static void main()
, y=", a.x, b.y);
} }
這裡輸出的結果是1,2
執行順序:
因為main()在b類,所以首先執行b類
當執行到 public static int y = a.x + 1;的時候,會呼叫a類,執行到a類的 x = b.y + 1;的時候,x又需要呼叫b類的y,注意這裡了,因為b類的y是靜態的,已經執行過一次了,所以這裡的x呼叫b類的y的時候是不會執行y = a.x + 1;,那這個時候y返回什麼值呢,因為y現在只是開闢了乙個記憶體空間,還沒有賦值完成,所以這時候y等於預設值0,所以x最後是等於1,y就等於2。
我最開始的疑問是:b類的y呼叫a類的x,a類的x又要呼叫b類的y,這樣不是死迴圈嗎。。結果靜態的成員在類裡面是只會執行一次的
VC程式只執行一次例項
方法一 建立全域性互斥體,然後在程序啟動時檢查該互斥體是否已被建立 只需要在initinstance 中加入 方法二 乙個程式可以執行多個例項 程序 那我們如何讓它僅執行乙個例項呢?很簡單,使用 pragma編譯器指令在程序的位址空間內建立乙個 共享節 就可以 達到目的,這個 共享節 裡的資料為多個...
VC程式只執行一次例項
方法一 建立全域性互斥體,然後在程序啟動時檢查該互斥體是否已被建立 只需要在initinstance 中加入 方法二 一 個程式可以執行多個例項 程序 那我們如何讓它僅執行乙個例項呢?很簡單,使用 pragma編譯器指令在程序的位址空間內建立乙個 共享節 就可以 達到目的,這個 共享節 裡的資料為多...
如何讓程式只執行一次例項
最近在做乙個系統的客戶端時,遇到乙個問題 客戶端執行在伺服器上時,如果同乙個使用者或其他使用者執行了這個客戶端,可能會導致錯誤。這就要求該程式的例項只能執行一次。using system using system.collections.generic using system.windows.fo...