迴圈
do-while迴圈
dobody-statement
while(test-expr);
這個迴圈的效果就是重複執行body-statement,對於test-expr求值,如果求值的結果為非零,就繼續迴圈。可以看到,body-statement至少會執行一次。
while迴圈
while(test-expr)
body-statement
與do-while的不同之處在於,在第一次執行body-statement之前,它會對test-expr求值,迴圈有可能就中止了。
for迴圈
for(init-expr;test-expr;update-expr)
body-statement
switch語句
switch(開關)語句可以根據乙個整數索引值進行多重分支(multiway branching)。
提供對過程的機器級支援,包括下面乙個或多個機制:
傳遞控制。
傳遞資料。
分配和釋放記憶體。
執行時棧,過程呼叫機制使用了棧資料結構提供的後進先出的記憶體管理原則。程式可以用棧來管理它的過程所需要的儲存空間,棧和程式暫存器存放著傳遞控制和資料、分配記憶體所需要的資訊。
轉移控制
資料傳送
棧上的區域性儲存,一般來說,過程通過減小棧指標在棧上分配空間。
暫存器中的區域性儲存空間,當乙個過程(呼叫者)呼叫另乙個過程(被呼叫者)時,被呼叫者不會覆蓋呼叫者稍後會使用的暫存器值。
遞迴過程
陣列分配和訪問
指標運算
巢狀的陣列
定長陣列
變長陣列
深入理解計算機系統 第三章
1.假設過程p 呼叫者 呼叫過程q 被呼叫者 則q的引數放在p的棧幀中。2.另外,當p呼叫q時,p中的返回位址被壓入棧中,形成p的棧幀的末尾。3.返回位址就是當程式從q返回時應該繼續執行的地方。程式暫存器組是唯一能夠被所有過程共享的資源。雖然在給定時刻只能有乙個過程是活動的,但是我們必須保證當乙個過...
深入理解計算機系統 第三章大略和第五章大略
這2章總結的很少,主要是覺得沒那麼重要。1.1 2個運算元的指令,第二個運算元通常是目的運算元 movb a b,move a to b,而add a b,b a,指令分為指令類,如mov類 movb,movw,movl,b指乙個位元組,w表示2個位元組,l表示4個位元組 movs類 擴充套件填符號...
深入理解計算機系統 第三版 第三章家庭作業答案
這章有的地方看第一遍的時候看的雲裡霧裡,看第二遍的時候才看明白。印象較深的是被呼叫者儲存暫存器,這部分內容看的得有3遍,沒看懂之前一直很迷,看懂之後只有兩個感覺 一是妙,二是簡單。這章內容,讓我知道了c語言的 是如何在機器上執行的,在此過程中,我突然很好奇編譯器如何把c原始碼翻譯為組合語言,以及如何...