|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Lightup 于 2021-1-27 17:54 编辑
/*关于为什么要str要减2?好像是这样的,如下*/
#include <stdio.h>
void main()
{
char *str = "abc";
char *start = str;
char *left = str;
char ch;
printf("start:%p\n",start);
printf("left:%p\n\n",left);
if (str != NULL)
{
printf("str:%p\n",str);
printf("*str:%c\n\n",*str);
// 定位到字符串的最后一个字符
while (*str++) //1.a 2.b 3.c 4.'/0'(此时地址又后移了)
{
printf("str:%p\n",str); //1.b的地址 2.c的地址 3.'\0'的地址
printf("*str:%c\n",*str); //1.b 2.c 3.'\0'
}
printf("\nstr:%p\n",str);
printf("*str:%c\n",*str);
str -= 2;
printf("str:%p\n",str);
printf("*str:%c\n",*str);
while (left < str)
{
ch = *left;
*left++ = *str;
*str-- = ch;
printf("str:%p\n",str);
}
}
}
|
|