次のような理由で、他の大学生と議論があります。C:infinteループの正しい理由
#include <stdio.h>
#include <stdlib.h>
void print_sign2(void);
int ctr;
char sign1='x';
char sign2='=';
int main() {
for (ctr=0; ctr<10; ctr++){
printf("%c",sign1);
print_sign2();
}
return 0;
}
void print_sign2(void) {
for (ctr=0; ctr<2; ctr++)
printf("%c",sign2);
}
私はctr
整数はグローバルであり、また機能print_sign2
で使用されているため、このループが発生していると思います。機能print_sign2
がctr
と呼ばれるたびに0に設定されることを意味します。
あなたは 'printf("%d \ n "、ctr);を' print_sign2'の呼び出しの前後に置くことで、この質問に答えることができます。 (あなたはほぼ*右です) – zwol
より正確には、 'print_sign2'は毎回' ctr'を '2'に設定します。理由を見ますか? –
できるだけグローバルを使用しないようにする理由の教科書の例。 –