C 看程式輸出結果問題,請高手解釋一下為什麼會是這樣的輸出結果,解釋一下流程

2021-10-30 05:22:30 字數 1119 閱讀 2108

1樓:

建構函式是先基類構造然,然後構造派生類

解構函式是先派生類析構,然後基類

2樓:

建構函式再變數定義的時候自動呼叫

解構函式再程式結束前被呼叫!

3樓:

「對一個區域性變數的建構函式將在控制執行緒每次通過該變數的宣告時執行。每次當控制離開該區域性變數所在的塊時,就會去執行它的解構函式。一組區域性變數的解構函式將按構造它們的相反順序執稈。例如,

void f(int i)

table dd;

//...

}在這裡, 每次f()被呼叫時將構造起aa、bb和dd(按此順序);而每次從f()裡返回時,dd、bb、aa將(按此順序)被析構。如果對一個呼叫i > 0,cc將在bb之後構造,並在dd的構造之前析構。」

「類物件的構造是構造是自下而上進行的:首先是基類,而後是成員,最後才是派生類本身。類物件的銷燬則正好以相反的順序進行:

首先是派生類本身,而後是成員,再後才是基類。成員和基類的構造嚴格按照在類宣告中的順序,它們的銷燬則按照相反的順序進行。」

急~c++。這個程式段的輸出結果是?int x=3;do {cout<<(x-=2);} while (!(--x));並且請講解一下。

4樓:聽不清啊

輸出:1-2

先進入迴圈,x自減2,然後輸出1(x的值為1)判斷時,x先自減,變為0,!0即為1,於是繼續迴圈。

進入迴圈,x自減2,然後緊接輸出-2(x的值為-2)判斷時,x先自減,變為-3,即非0,為「真」,!真即為假,於是退出迴圈。

5樓:戊問鮃

1-2,開始先輸出3-2也就是1,此時--x是0,而(!(--x))則為非0,也就是真,繼續執行輸出,x-2就是0-2,就是-2,此時(!(--x))為0就是假,結束

6樓:匿名使用者

首先做x-=2相當於x=x-2,輸出為1,然後做--x,使x=0,滿足條件,進入下一迴圈,再做x-=2,輸出-2,這時再做--x時,x=-3,不滿足條件,退出迴圈.最終結果輸出1-2

這裡的條件是x在做了--x之後,x的值為0則條件為真。

c語言程式輸出結果

a 4 b 3 在swap中,區域性變數和全域性變數名字一致時,取區域性變數的值a 3 b 4 c 0 由於swap是值傳遞,所以ab的值沒有交換,另外區域性變數和全域性變數名字一致時,取區域性變數的值 首先,a b c為全域性變數且分別為1,2,0在main函式裡面對a b分別賦了3和4,以主函式...

c語言讀下列程式,寫出程式的輸出結果。希望有詳細的解析

標頭檔案,輸入輸出 字串處理 include include 定義並實現函式hh,其功能為返回 回字元答 串的後半部分 利用strlen函式求出字串的長度,除以2,得到字 串一半的長度,本例中s的長度為12,則一半為6,再將字串s的首地址偏移6,返回,則主函式中 p ogram char hh ch...

C語言程式為什麼最後的輸出結果是這個

getchar接收的是 字元 putchar輸出的也是字元 它們不會接收和輸出整數!第一次c 2 執行case 0 後面的語句直到遇到break 所以輸出是 6 6 顯示就是66。第二次c 4 執行case 2 後面的語句直到遇到break 所以輸出是 8 顯示就是668。第三次c 7 執行defa...