0
 main()
{
char s[ ]="man";
int i;
for(i=0;s[ i ];i++)
printf("\n%c%c%c%c",s[ i ],*(s+i),*(i+s),i[s]);
}

for ループの s[i] の意味は何ですか?

4

5 に答える 5

3

一度i3 に達するs[i]\0、ループが終了します。

char s[]="man";次の配列が生成されることを思い出してください。

char s[] = {'m', 'a', 'n', '\0'};

これが、制御ステートメントがループを終了させる原因となるs[3]a に評価される理由です。'\0'

于 2012-08-21T23:13:36.683 に答える
0

これは foor ループの述語であり、自動的にブール値に変換されます。それは書くようなものs[i] != '\0'です。C 文字列はゼロで終了します。

于 2012-08-21T23:14:45.840 に答える
0

s[i]ループは、ゼロ以外の値に評価される限り続行されます。C 文字列はヌル (= ゼロ) で終了するため、すべての文字列が検査されるまでforループが増加します。is

于 2012-08-21T23:14:54.777 に答える
0

どの for ループでも、真ん中のステートメントはループの条件ですが、それは true ですが、ループ自体はループし続けます。あなたのステートメントの反対(たとえば)は、ループがfalseのfor(i=0;!s[ i ];i++)間だけ繰り返されることを意味します。s[i]もう一つの例:

for(i = 0; i <= 10; i++);iこのループはが 10 以下である 限り繰り返されるため、10 まで数えて i がインクリメントするたびにアクションを実行する簡単な方法になります。

于 2012-08-21T23:21:13.910 に答える
0

forループの条件です。

C では、NULL,'\0',0 以外の値はすべて true として評価されます。したがって、s[i] が '\0' を取らない限り、true と評価されます。

于 2012-08-21T23:15:19.423 に答える