c语言中指针问题

#include<stdio.h>
void Swap(char*r,char*s){
	char p;
	p=*r;
	*r=*s;
	*s=p;
}
main(){
	char*s1="abc";
	char*s2="123";
	Swap(s1,s2);
	printf("%c,%c",*s1,*s2);
}

以上代码执行不了,请问哪位大神能帮我解决?谢了!

lzjccc
浏览 1433回答 1
1回答

onemoo

普通char指针是不能指向常量字符串的,并且因为“abc”“123”是常量字符串,也不能被修改。要想操作字符串,就应该给它们分配实际的存储空间,所以应把 s1 和 s2 声明为字符数组:char s1[] = "abc"; char s2[] = "123";
打开App,查看更多内容
随时随地看视频慕课网APP