字符不能在字符串中更改

时间:2018-08-18 21:20:52

标签: c string character

为什么我最初不能更改声明为指针S的字符串*s的特定字符?当我像这样设置schar 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);
 }

1 个答案:

答案 0 :(得分:0)

char * s; s =“ FirstText”;这不是动态分配。 还有, 在代码编译期间,此字符串存储在readonly部分中。 只读部分中存储的任何数据都不能在运行时更改。 如果这样做,程序将崩溃。

char * s =“ FirstText”; 同为 const char s [] =“ FirstText”;