(**於金慶的專欄:
對於乙個陣列ar,求其最外層的維數。
c語言當中慣用的是 sizeof(ar) / sizeof(ar[0]),
可是在stlsoft庫中是 sizeof(ar) / sizeof(0[ar])。
以前從沒見過陣列元素引用使用這樣的形式:0[ar],能行嗎?
ar[0]與0[ar]效果是一樣的,其實是求位址,但是為什麼用0[ar]呢?
生僻的用法降低了可讀性。是不是有什麼優點呢?
都是編譯期計算,應該沒有效能上的差別。
後來翻看了《imperfect c++》一書,找到了這樣做的原因。
0[ar]保證輸入的ar是乙個陣列,而不是乙個定義了operator () 運算子的類例項。
例如ar是乙個std::map時,c語言中的慣用法會得出錯誤的結果,
但是用0[ar]這樣的形式,會編譯出錯,防止使用者錯誤的使用。
比較C 陣列元素引用的兩種形式a 0 與0 a
比較c 陣列元素引用的兩種形式a 0 與0 a 對於乙個陣列ar,求其最外層的維數。c語言當中慣用的是 sizeof ar sizeof ar 0 可是在stlsoft庫中是 sizeof ar sizeof 0 ar 以前從沒見過陣列元素引用使用這樣的形式 0 ar 能行嗎?ar 0 與0 ar ...
Matlab中陣列元素引用 三種方法
1.matlab中陣列元素引用有三種方法 1.下標法 subscripts 2.索引法 index 3.布林法 boolean 按列儲存 與fortran一樣 比如說下面的二維陣列 a 8 1 6 3 5 7 4 9 2 matlab的儲存順序是8,3,4,1,5,9,6,7,2,也就是說 先行後列...
Matlab中陣列元素引用 三種方法
1.matlab中陣列元素引用有三種方法 12 31.下標法 subscripts 2.索引法 index 3.布林法 boolean 按列儲存 與fortran一樣 比如說下面的二維陣列 a 8 1 6 3 5 7 4 9 2 matlab的儲存順序是8,3,4,1,5,9,6,7,2,也就是說 ...