为什么我最初不能更改声明为指针S
的字符串*s
的特定字符?当我像这样设置s
:char s[]="Hello";
并进行更改:s[0]='a';
时,它可以工作,但是对于动态分配,它不起作用。
#include <stdio.h>
char *fun(char *s)
{
s[0]='A';
return s;
}
int main(int argc,char *argv[])
{
char *s;
s="FirstText";
s=fun(s);
printf("%s",s);
}
答案 0 :(得分:0)
char * s; s =“ FirstText”;这不是动态分配。 还有, 在代码编译期间,此字符串存储在readonly部分中。 只读部分中存储的任何数据都不能在运行时更改。 如果这样做,程序将崩溃。
char * s =“ FirstText”; 同为 const char s [] =“ FirstText”;