第九章,深入理解for迴圈(C )

2021-07-02 22:43:19 字數 729 閱讀 8770

今天突然看到乙個人的寫for迴圈是這樣的寫的for(int i=0;i<10;++i){},因為自己之前寫的是這樣,for(int i=0;i<10;i++){},覺得有點好奇,所以就和同事還有同學們討論了一下,現在相對比之前有了更深的理解。

for(表示式1;表示式2;表示式3)

步驟是:表示式1-->表示式2-->迴圈體-->表示式3-->表示式2-->迴圈體。。。

理論上來說,為什麼a=i++;和a=++i;a的值不一樣,而for(int i=0;i<10;++i){}和for(int i=0;i<10;i++){}中i在迴圈體中的值都是1到9呢?主要是在「表示式3」中沒有賦值的過程,只有i的值的變化,只要「表示式3」執行結束,i本身都加了1,這裡無關乎賦值,所以也就和a=i++;a=++i不一樣不一樣了。所以這兩種for迴圈是一樣的。主要的問題是表示式執行完與沒完,執行中加1的是++i,執行結束後加1的是i++。下乙個例子來說明在「表示式2」結束後,i++中的i都會加1。迴圈體內的i就是加了1的i。而在「表示式2」中判斷時是沒有加1的i,所以才會輸入10。

#include int main(int argc, char** argv) {

for(int i=0;i++<10;){

std::cout

除錯結果

深入理解linux核心讀書筆記(第九章)

1.核心信賴自己,但是對於使用者態的記憶體請求,核心會做必要的位址檢查,然後先給程序分配位址空間 線性位址 真正的物理記憶體分配推遲到必要的時候才進行。2.核心使用mm struct 來描述使用者的位址空間資訊,所有的mm struct 是用雙向鍊錶連線起來的,相鄰的mm struct 在mmlis...

第九章 迴圈結構高階

二重迴圈就是乙個迴圈體內包含了另乙個完整的迴圈結構。while與while迴圈巢狀 while 迴圈條件1 while 迴圈條件2 while 迴圈條件1 for與for迴圈巢狀 for 迴圈條件1 迴圈操作1 for 迴圈條件2 迴圈操作2 while與for迴圈巢狀 while 迴圈條件1 迴圈...

c 基礎 (第九章)

結構體型別說明 struct 結構體識別符號 成員變數列表 如果沒有結構體識別符號,則稱為無名結構體型別 引用結構體變數成員 l 結構體變數名.成員名 l 結構體指標名 成員名 l 結構體指標名 成員名 共用體共用體所有變數共用一塊記憶體 定義格式如下 union 共用體識別符號 成員變數列表 列舉...