看到乙個const,其初始目的:取代預編譯指令,即預處理,揚長避短。
具體作用:
定義const常量,具有不可變性。
防止對程式的意外修改。如:
void f(const int i)
節省空間,節省記憶體。
提高效率。
便於型別檢查,使編譯器對處理內容有更多了解,消除了一些隱患。
可以避免意義模糊的數字出現,同樣可以很方便地進行引數的調整和修改。 同巨集定義一樣,可以做到不變則已,一變都變。
10月31日筆記,萬聖節快樂!
二維陣列,舉個例子(來自《c prime plus(第五版)中文版》第252頁:
const float rain[years][months] =,,
,,
};
這個初始化使用了5個數值列表,沒個數值列表都用花括號括起來。第乙個列表被賦給陣列的第一行,第二個列表被賦給陣列的第二行,依次進行賦值。如果第乙個列表中有10個數值,則第一行只有前10個元素得到賦值,最後2個元素被預設初始化為0。如果列表中的數值多餘12個,則報告錯誤;而且這些數值不會影響到下一行的賦值。
初始化時候也可以省略內部的花括號,只保留最外面的一對花括號。只要保證數值的個數正確,初始化效果就是一樣的。如果數值的個數不夠,那麼在陣列初始化時候,按照先後順序來逐行賦值,因此前面的元素首先得到賦值,直到沒有數值為止。後面沒有賦值的元素被初始化為0。如下:
//新方法
int sq[2][3]=,
};//老方法
itn sq[2][3]=;
推薦使用新方法,方便對**進行閱讀理解和檢查。
更多維數的陣列
前面關於二維陣列的討論對於三維乃至更多維數的陣列同樣適用。可以用如下方式宣告三維陣列:
int box[10][20][30];
可以這樣直觀的理解:一對陣列是排成一行的資料,二維陣列是放在乙個平面上的陣列,三維數是把平面資料一層一層的壘起來。
另一種理解是認為它是陣列的陣列的陣列。
通常處理三維陣列時候需要3重巢狀迴圈,處理思維陣列需要4重巢狀迴圈,對於其他多維陣列,以此類推。
二維陣列 二維陣列和指標
include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...
二維指標和二維陣列
二維指標和二維陣列有三種形式 1,type ptr 2,type ptr或者type prt 3,type prt 三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。1,type ptr 表示乙個指向指標的指標 但是在一開始宣告的時候 type ptr ptr到底指向幾個指標是不知道的...
二維陣列和二維陣列名
對於一位陣列我們認識到其資料元素在記憶體中是按線性順序依次排列的,且一維陣列名的值是乙個指標常量。那麼二維陣列在記憶體中又是怎麼儲存的,其陣列名又有什麼含義呢?定義乙個二維陣列 int arr 3 4 我們可以將乙個二維陣列看做是乙個其中元素為陣列的乙個一位陣列,也就是說二維陣列第一維的元素實際上是...