我编写了以下代码来反转 C 中的字符串。代码似乎可以正常工作,这就是我感到困惑的原因。有谁知道为什么这里没有错误?我期待一个数组越界或for循环上的无限循环,但似乎循环在它达到负值之前就中断了。
#include <stdio.h>
#include <string.h>
void reverse(char* str);
void reverse(char* str)
{
size_t len = strlen(str);
for(int i = (int)len-1; i<=len; i--)
{
printf("%c", str[i]);
}
}
int main (int argc, const char * argv[])
{
char string[] = {'h', 'e', 'l', 'l', 'o', '\0'};
reverse(string);
return 0;
}