shrayy @ 2021-06-03 17:29:03
这是以前的代码
#include<stdio.h>
int main()
{
char ch[5],temp;
scanf("%s",&ch);
temp=ch[4];
ch[4]=ch[0];
ch[0]=temp;
temp=ch[3];
ch[3]=ch[1];
ch[1]=temp;
printf("%s",ch);
return 0;
}
偷懒没用循环,结果WA了
然后看了看大佬的题解,改了一下
#include<stdio.h>
char ch[5];
int main()
{
char temp;
scanf("%s",&ch);
temp=ch[4];
ch[4]=ch[0];
ch[0]=temp;
temp=ch[3];
ch[3]=ch[1];
ch[1]=temp;
printf("%s",ch);
return 0;
}
然后就AC了,但是还是不懂
为什么这个ch
一定要是全局变量才能过
输出明明一模一样啊
by __Cartesian__Tree__ @ 2021-06-03 17:56:29
输入字符串不需要取地符
by ud2_ @ 2021-06-03 18:00:44
@shrayy 而且数组不够大。
char[5]
只能装得下长为 4 的字符串。
by __OwO__ @ 2021-06-03 18:06:13
全局变量在堆上, 局部变量在栈上, 栈泄露会出问题, 堆泄露出问题对程序有影响的几率要稍微小一些
by 孙格非 @ 2021-06-30 20:14:49
@ OwO 对!