int main(int agrc, char *agrv[]) {
char str[10] = {"abcd"};
char str2[10];
int i = 0;
int j = 0;
for(i = 0; str[i] != '\0'; i++);
i--;
for(; i >= 0; i--) {
str2[j++] = str[i];
}
for(i = 0; str2[i] != '\0'; i++) {
str[i] = str2[i];
}
printf("%s",str);
}
那能不能加个{ },为什么我加了个{ }就失灵了?
for(i = 0; str[i] != '\0'; i++) {
i--;
}
当然不能加{}了,你的程序里for(i = 0; str[i] != '\0'; i++) ;相当于这样子:
for(i = 0; str[i] != '\0'; i++)
{
; //请注意,这里有一个“;”是空语句。
}
然后让i--是控制到倒数第一个字符。
那在里面是用来干嘛的,为什么我加了个{ }就失灵了?
for(i = 0; str[i] != '\0'; i++) {
i--;
}
for是个循环语句
for(i=0;str[i]!='\0';i++)
i--;
是一个整体执行次序是
i=0(i的初值是0)
str[i]!='\0(判断字符串第i位有没有结束)
i--(i的值减去1)
i++(i的值加上1)
for(语句1;语句2;语句3)
语句4;
相当于
语句1;
while(语句二)
语句4;
语句3;
你用{}就将语句4隔开l。就不属于for循环语句了,运行当然不对了
希望能被采纳