コンテンツにスキップ

番兵

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Wdpp (会話 | 投稿記録) による 2007年3月24日 (土) 04:58個人設定で未設定ならUTC)時点の版 (→‎終了を表すための専用の値: リンク修正)であり、現在の版とは大きく異なる場合があります。


Sentinel

2使
  1. 実データには出現しない、データの終了を表すための専用の値
  2. 入力データを処理するループの終了条件が複数ある場合に、条件判定の数を削減するために置くダミーのデータ

終了を表すための専用の値




LISPNILC\0使


Cstrcmp
int strcmp(const char s[], const char t[])
{
    int i = 0;
    while (s[i] != '\0' && t[i] != '\0') {
        /* どちらかの文字列に番兵が現れたら終了 */
        if (s[i] != t[i]) {
            break;        /* 不一致箇所を検出したら終了 */
        } else {
            i++;          /* 一致している場合は次の文字へ */
        }
    }
    return s[i] - t[i];
}

使CgetcharcharchargetcharintcharEOF使-1使

2

条件判定の数を削減するために置くダミーのデータ


使-

1

Centrylenaa[i]  entry < a[i+1] i a[len-1]  entry a[len]len-1 entry < a[0] -1
int selectEdge(int entry, int a[], size_t len)
{
    int i;
    for (i = len - 1; i >= 0; i--) {
        if (a[i] <= entry)
            break;
    }
    return i;
}

 i >= 0  a[i] <= entry 2a[0] a[0] < entry 
int selectEdge(int entry, int a[], size_t len)
{
    int i;
    for (i = len - 1; ; i--) {
        if (a[i] <= entry)
            break;
    }
    return i;
}


1