C 靜態成員只執行一次例項2

2021-08-25 05:51:20 字數 453 閱讀 2401

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...