回覆列表
  • 1 # 使用者4014859465495

    C/C++ 有一個特性(其實應該算是C的特性),就是簡單資料型別不包含冗餘資訊。簡單來說,陣列在記憶體中是順序儲存的。a[10][10]和a[100] 這兩個宣告,在記憶體裡面會產生一模一樣的東西。不同的就是這兩個東西所代表的含義。 比如說,記憶體中順序儲存了20個位元組的資料,然後我們要根據它的型別,宣告時的陣列長度,自己算出來這20位元組中那一塊代表了什麼意思。當然為了解放人類,這一步在編譯器實現了。大概像這個樣子:記憶體中只有這麼10個格子。至於哪個格子代表什麼意思,都要我們自己算出來。不論是a[0][0]還是a[0]還是a的值,都根據這個含義來定。比如,我們認為:

    a代表了陣列首地址a[0]代表了第一個子陣列的首地址(這裡也可以理解為,(a[2])[]的首地址,把a[2]看成一個長度為5的單元)a[0][0]代表了第一個子陣列的首地址所代表的值說的有些凌亂。。。意會把,貼個程式碼,可以參考一下:

  • 中秋節和大豐收的關聯?
  • 問問,“彼岸花開開彼岸,奈何橋前可奈何。”出自哪裡,全詩又是什麼?非常感謝?