for文 - 繰り返しの構文

for文を使用すると繰り返しが書けます。

for (ループ変数の初期化;繰り返し条件;ループ変数の更新) {
  
}

for文で合計を求めるサンプルです。

#include <stdint.h>
#include <stdio.h>

int main(void) {
  
  // for文で合計を求める
  int32_t total = 0;
  int32_t i;
  for (i = 0; i < 10; i++) {
    total += i;
  }
  
  printf("%d\n", total);
}

0~9までの合計が出力されます。

45

for文はwhile文のシンタックスシュガーです。以下のwhile文とfor文は等価です。

#include <stdint.h>
#include <stdio.h>

int main(void) {
  
  // for文で合計を求める
  int32_t total = 0;
  int32_t i = 0;
  while (i < 10) {
    total += i;
    i++;
  }
  
  printf("%d\n", total);
}

C99で追加されたforのループ変数初期化部における変数宣言

C99で追加されたforのループ変数初期化部における変数宣言の機能が便利です。

for (ループ変数の宣言と初期化;繰り返し条件;ループ変数の更新) {
  
}

for文で合計を求めるサンプルです。C99の機能を使って、変数宣言と同時に初期化を行っています。

#include <stdint.h>
#include <stdio.h>

int main(void) {
  
  // for文で合計を求める
  int32_t total = 0;
  for (int32_t i = 0; i < 10; i++) {
    total += i;
  }
  
  printf("%d\n", total);
}

意味的には次のコードのシンタックスシュガーとなっています。

#include <stdint.h>
#include <stdio.h>

int main(void) {
  
  // for文で合計を求める
  int32_t total = 0;
  {
    int32_t i;
    for (i = 0; i < 10; i++) {
      total += i;
    }
  }
  
  printf("%d\n", total);
}

新しめのgccであれば、オプションなしで動くと思います。古めのgccであれば次のオプションをつけます。

gcc -std=c99 -o a a.c && ./a

gcc -std=gnu99 -o a a.c && ./a
Perlテキスト処理のエッセンス
  • 初級者向け・テキスト処理と正規表現の基本をマスター
業務に役立つPerl
  • 実務者向け・ログ解析など日本語を含むテキスト処理の実践!
Perlクラブ
  • 仲間と出会い
    ゆとりあるエンジニアライフを送る