<分区>
任何人都可以解释为什么这段代码不起作用,请!!非常感谢!
#include <stdio.h>
void changer(char * tp)
{
int i=0;
tp[0]='b';
}
int main(void)
{
char *st="aaab";
changer(st);
printf("%s",st);
}
<分区>
任何人都可以解释为什么这段代码不起作用,请!!非常感谢!
#include <stdio.h>
void changer(char * tp)
{
int i=0;
tp[0]='b';
}
int main(void)
{
char *st="aaab";
changer(st);
printf("%s",st);
}
最佳答案
这个声明
tp[0]='b';
结果为 undefined behaviour因为tp
指向一个字符串文字。不允许在 C 中修改字符串文字。
相反,您可以使用数组:
char st[] = "aaab";
您可以对其进行修改。
关于C 关于指针的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40130666/