那位大神知道这是什么错(c语言)
发布网友
发布时间:2023-04-12 19:25
我来回答
共3个回答
热心网友
时间:2023-05-13 10:00
。。。你申请的是一个字符指针
char *a="I am a teacher!";
char *string="You are a student.";
这样初始化的话,指针会指向一片静态区域。是不能通过指针对其进行操作的。
你可以重新申请个字符串数组然后这样初始化,然后用指针指向这个数组名。
楼下不懂不要乱说,函数声明是可以写在main里的,只是作用范围不一样。
函数本身就可以没有返回值,但不代表函数无效= =。
传给printf的是两个字符串指针,%s本身就得传指针,什么时候你见过指针需要显示的。。。
热心网友
时间:2023-05-13 10:01
首先,你的错误楼上已经指出的很多了,但是你的程序本质就出现了问题。
就算没错误,程序也无用。
void copy(char *from,char *to)
{
for(;(*to++=*from++););
}
你想通过copy来复制字符串。但是你忽略了一点,你把a和string作为参数传进copy
这时候的from和to 已经不是a和string了,而是a和string的赋值
所以即使你调用
copy(a,string);
但是a和string的值并没有改变。
热心网友
时间:2023-05-13 10:01
1,你直接申请了字符指针,这样会得到指针指向的区域无法通过指针操作;
2,你的函数声明在main函数里;
3,你定义的函数无返回值,相当于无效;
4,即使函数有返回值,返回值并未输出,程序分别输出了两个指针的值。
还有别的问题的话再追问吧,我明天回复