#include<stdio.h>
void main()
{
char d;
char *r="Helloo";
printf("%s\n",r);
d=*(r+1);
printf("%c",d);
*(r+0)=d;
printf("%s\n",r);
}
当我将字符串存储在字符数组中时,此方法工作正常,但为什么现在不起作用
答案 0 :(得分:2)
char *r="Helloo";
您已将指针r
分配给字符串文字。字符串文字应视为不可变的。任何试图修改它的尝试都会导致不确定的行为(N1570,第6.4.5 / 7节)。
使用
char r[]="Helloo";
您已将字符串存储在可以修改的数组中,从而可以按预期工作。