麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

off-by-one(大小差一)錯誤介紹

2019-11-14 09:49:14
字體:
來源:轉載
供稿:網友

詳細了解請移步這里

off-by-one,大小差一錯誤是一類常見的程序設計錯誤。這方面有一個經典的例子OpenSSH.去Google搜索關鍵詞“OpenSSH off-by-one”可以了解相關狀況。具體來說,

1. if(id < 0 || id > channels_alloc)...2. if(id < 0 || id >= channels_alloc)...

第二句應該是正確的寫法。舉個更通俗的例子:

int a[5],i;for(i = 1;i < = 5;i++)    a[i]=0;

上述代碼定義了長度為5的數組a,循環的目的是給數組元素初始化,賦值為0.但是,循環下標從1開始到5,出現了a[5]=0,這樣的不存在的數組元素.這就是典型的“差一錯誤”(off-by-one).其實,貌似說柵欄柱錯誤(fencepost error)大家更熟悉。我問過身邊的朋友,很多人知道這個問題。如果你要建造一個100米長的柵欄,其柵欄柱間隔為10米,那么你需要多少根柵欄柱呢?11根或9根都是正確答案,這取決于是否要在柵欄的兩端樹立柵欄柱,但是10根卻是錯誤的。 我想起來了我高中是數學老師告訴我們的一個很容易犯錯的數學題目。從周一到周五一共有幾天?也許你立即反應5-1=4,但是,下意識你也會說五天,實際上應該是5-1+1=5.轉換到數學,數字1到數字5一共有幾個數字?這里有一個公式 從M到N,一共有 M-N+1 項.

這個問題寫出來后很簡單,只不過在寫代碼的時候,往往比較容易忽略。尤其在涉及到數組操作兩端界限的時候,如果不是從0開始計數,就要稍微考慮一下咯。

轉載時請注明本文出處 本文鏈接地址:https://www.tomytime.com/archives/224


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色视频在线观看 | 免费色片 | 国产成人午夜高潮毛片 | 久久99综合 | 亚洲第一激情 | 91a在线观看 | 色97在线 | www视频免费在线观看 | 91精品国产一区二区三区四区在线 | av电影院在线观看 | 久久久av亚洲男天堂 | vidz 98hd| 中文字幕 亚洲一区 | 一级电影在线观看 | av电影免费观看 | 欧美a久久 | av手机在线电影 | 亚洲精品午夜在线 | 国产亚洲精品综合一区 | 97久色| 欧美日韩亚洲成人 | 日本成人一二三区 | 蜜桃91丨九色丨蝌蚪91桃色 | 国产乱淫av片免费观看 | 日韩av在线资源 | 亚洲成人欧美在线 | 亚洲成人精品视频 | 一色屋任你操 | 欧美日韩一区,二区,三区,久久精品 | 91小视频在线观看免费版高清 | 国产精品免费观看视频 | 日韩精品一区二区三区中文 | 中文字幕1区2区 | 久久影库 | 黄网站在线免费 | 国产美女精品视频 | 精品黑人一区二区三区国语馆 | 中文字幕线观看 | 视频一区二区精品 | 欧美一级黄 | 欧美成a人片在线观看久 |