C/C++的數組是從0開始計算的,5個值的數組則下標會對應 0, 1, 2, 3, 4。數組
在數學上可能不這麼數,我所知道的 Mathematica 內的 List 是從 1 開始做爲下標的。設計
OpenCASCADE對數組下標的設計早期更靠近數學的理念,從1開始,這明顯與C/C++語言標準不一樣,因此對每個數組都得從新設計,而後爲了兼容又給數組類定義了一個 Lower下標,Upper下標;數組下標應該是從 Lower 至 Upper (邊界都取值)。指針
兼容Lower,Upper 下標使得在使用時得時時刻刻提神,並且能夠看到裏邊有不少地方的代碼,會假定數組是從1開始算下標的,看樣子很難所有沒有修改過來,因此若是將 Lower 設定爲0 開始計數,雖然作到了與C/C++的等同,但使用起來就等同了埋地雷,指不定何時就給你來一個指針越界,要不要試試。數學
話又說回來,真不習慣數組從1開始計算下標;多此一舉地搞個Lower, Upper下標,弄出沒必要要的複雜度,感受這是OpenCASCADE不夠貼近語言使用,雞肋的設計。List