-2

K&R C を学んでいて、これは私を混乱させました。

ここで、ループの中に入れるとreturn k、出力されませんk。しかし、 を書くprintf("k :%d", k)と、 (初期状態) の値を 1 つ出力して終了しますが、の値は出力kしません。returnk

これは正確に何をしているのか混乱させます。ループに入った場合、値がゼロreturnになる可能性があるので、なぜループを終了しないのですか?printfkreturn k

int k;
for (k=0; k<5; ++k)
{
  printf("k :%d\n",k);
  return k;
}

出力:

k:0

ループに入ったので、本当でなければなりません。なぜその後returnの値ではないのkですか?

完全なプログラムは次のとおりです。

#include <stdio.h>
#include <stdlib.h>

int main(void) {
int k;


for (k=0; k<5; ++k)
{
  printf("k %d\n",k);

  return k;
}

return EXIT_SUCCESS;
}
4

1 に答える 1

1

シェルに送信される終了ステータス コードとしてゼロを「出力」します。

EXIT_SUCCESSは 0. の同義語でreturn kありreturn EXIT_SUCCESS、同じことを行っています。

出力を表示するには、 などの観察可能な効果を含むサブルーチンを実行する必要がありますprintf

returnサブルーチンではなく、フロー制御ステートメントです。現在の関数を終了し、コンピューターの制御を呼び出し元の関数に「戻します」。この場合、それはプログラムの終了を引き起こします。

于 2013-09-18T03:42:50.293 に答える