: sentinel



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

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

編集



LISPNILC\0使


C strcmp 
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];
}

使C getchar  char char  getchar  int  unsigned char unsigned char EOF使-1使

2

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

編集

使-

1

C entry  len  aa[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

関連項目

編集