您好,登錄后才能下訂單哦!
這篇文章主要介紹“C++的main函數執行前后會發生什么”,在日常操作中,相信很多人在C++的main函數執行前后會發生什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++的main函數執行前后會發生什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在C/C++
語言執行過程中是不是所有的動作都由main()
函數引起,來看下面的代碼:
#include <iostream>class A{public: A() {printf("This is Constructor\n"); } ~A() {printf("This is destructor\n"); } }; A a;int main() {printf("This is main\n"); }
這段代碼很簡單,但是最終是不是只是打印了This is main
這句話,顯然不是,實際的結果是按照下面順序的三句話:
This is ConstructorThis is mainThis is destructor
首先main()
函數只不過是提供了一個函數入口,在main()
函數中的顯示代碼執行之前,會由編譯器生成_main函數,其中會進行所有全局對象的構造以及初始化工作。簡單來說對靜態變量、全局變量和全局對象來說的分配是早在main()
函數之前就完成的,所以C/C++
中并非所有的動作都是由于main()
函數引起的。
同理在main()
函數執行后,程序退出,這時候會對全局變量和全局對象進行銷毀操作,所以在main()
函數還會執行相應的代碼。
在上面的例子中,a的構造函數會先執行,再執行main,最后會調用a的析構函數。
到此,關于“C++的main函數執行前后會發生什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。