已关闭,此问题需要更focused,目前不接受回答。
**要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
2天前关闭。
这篇帖子昨天编辑并提交审核,未能重新打开帖子:
原始关闭原因未解决
Improve this question
谁能给我解释一下代码?我不明白反向函数是怎么工作的。
#include <stdio.h>
#include <string.h>
int reverse(char *s);
int main(){
char s[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)
end++;
end--;
for(; s<end; s++, end--){
temp = *s;
*s = *end;
*end = temp;
}
答案是54321
1条答案
按热度按时间a1o7rhls1#
表示我们正在执行 end++ while
我们只是把指针 end 替换到c_string char *s的末尾。在end之后--指针 end 指示char *s的最后一个char。
在 for 循环中,我们将替换chars来做c_string char *s的反转。例如,第一次迭代将这样做: