谁能为我解释一下代码? 我不明白反向功能的作用是什么。
#include <stdio.h>
#include <string.h>
int reverse(char *s);
int main(){
char s[10] = {0};
char s1[10] = {0};
int a = 12345;
sprintf(s,"%d",a);
reverse(s);
printf("%s",s);
}
int reverse(char *s){
char *end = s;
char temp;
while(*end) #what is this?
end++;
end--;
for(; s<end; s++, end--){
temp = *s;
*s = *end;
*end = temp;
}
答案是54321
while(*end)
end++;
表示我们正在做end++while
*end != '\0'
我们只是将指针 end 替换为 c_string char *s 的末尾。 end-- 指针 end 表示 char *s 的最后一个字符。
在 for 循环中,我们正在替换 chars 以执行 c_string char *s 的反向操作。例如,第一次迭代将执行此操作:
temp = *s // = 1
*s = *end // = 5
*end = temp // = 1
// c_string s = "52341"