课本上的一道题目代码的错误挺多的
#include<stdio.h>#include<string.h>
fun(char *w,int n)
{
char t, *s1,*s2;
s1=w;
s2=w+n-1;
while(s1<s2)
{
t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{
char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
}
这样再DEV C++里面是没有结果的
必须吧char *p;p="1234567";
改成char p[]="1234567";
才有结果
具体原因是什么我不清楚,求解答 "1234567"是存在于只读数据区段的字符串,是const char类型
p是char *类型。你硬要用的话就转换类型,p=(char*)"1234567";或者用const char *p
你改的那个是char[]的初始化操作,语法允许。如果你写成char p[];p="1234567";也是不允许的
页:
[1]