在下面的代码中,;
循环之后有一个for
,但我们通常不会在;
循环控制表达式之后使用for
,因为这会使循环结束,实际上没有陈述。
为什么在这里使用它以及i--
在这段代码中做了什么?它只发生一次。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char a[]="abcdefghijklmnopqrstuvwxyz";
char temp;
int i,j;
for(i=0;a[i];i++);
i--;
puts ("the initial text is:");
puts (a);
for(j=0;j<i/2;j++){
temp=a[j];
a[j]=a[i-j];
a[i-j]=temp;
}
puts ("reversed text is:");
puts (a);
getch();
return 0;
}
答案 0 :(得分:6)
使用for
循环,计算char
数组中的元素数。检查for
中的条件。它说a[i]
。这意味着,直到时间a[i]
为真,[或不null
],for
循环将运行,完成后,元素总数将存储在{{1 }}
与i
一样,i--
循环仅在条件检查为for
时才会中断,即false
包含a[i]
时。这次NULL
的值包含终止a[i]
字符。这里NULL
用作数组的索引,因此在i
之后,i--
将指向数组中的最后一个有效元素。
答案 1 :(得分:5)
如果;
之后有for
,则表示for
在执行后没有任何代码,而且只是for
本身。< / p>
它的作用是,它从变量a
的开头开始,直到达到NULL
或0
,这被解释为FALSE
,并退出for
循环。现在i
是NULL
末尾a
的索引,i--
会使其成为变量a
的最后一个字符的索引,然后它开始逆转变量。
答案 2 :(得分:3)
C字符串是char
的数组。 C字符串被称为“空终止”:字符串的结尾由空字符'\0'
的存在指示。循环for(i=0;a[i];i++);
递增i直到找到空终止字符。 (当a [i]被转换为循环终止条件的布尔值时,空字符被提升为false,因为它的值为0)。之后,i--;
将索引i
向下移动到C字符串中的最后一个有效字符。
答案 3 :(得分:2)
中的
for
for(i=0;a[i];i++);
有效地计算字符串的长度。
i--
然后取一个长度,
然后你有一个围绕字符交换的循环
答案 4 :(得分:1)
for(i=0;a[i];i++);
检查a[]
中的最后一个字符。