今天看博客園的文章,發現博問欄目中有一個網友的問題挺有趣的,就點進去看了下,標題是“C++生存期問題”,給出鏈接:http://q.cnblogs.com/q/51133/
本文會以此問題作為討論的實例,來具體討論以下四個問題:
(1) C++變量生命周期
(2) C++變量在棧中分配方式
(3) C++類的內存布局
(4) Debug和Release程序的區別
也許您覺得這些討論問題沒有實際意義,應該多做些提高生產力的事情,如同重復發明輪子也是沒有意義的。
筆者同意這個觀點,但是,作為一個有追求的程序員,應該知其然而且知其所以然,更應該知道輪子是怎麼造出來的,不是嗎?
當然,限於篇幅,本文可能只是拋磚引玉,更多的知識,一定是大家自己去探索的。
不多說,進入正題。
實驗環境:Win7 32bit系統 + VS2008 SP1
問題現象:
先閱讀以下程序:
#include <iostream><windows.h> class r= showNum(){cout<<t<< T1: show(){cout<<<<x<< T2: r):x(r* show(){cout<<<<x<<* p[( i=;i<;i++(i%===&<<&r<<=&<<&r<<( i=;i<;i++(i%===&<<&r<<=&<<&r<<( i=;i<;i++->