免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 3524 | 回复: 32
打印 上一主题 下一主题

指针问题,,,烦神看看,,, [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-07 20:18 |只看该作者 |倒序浏览
小弟,自学c

书上有一段程序,能编过去但运行时总是"段错误"
,,,,高手帮看看,,,

void copy_sting(char *from,char *to)
{
  for(;*from!='\0';from++,to++)
    *to=*from;
  *to='\0';
}
main()
{
  char *a ="I am a teacher";
  char *b ="you are a student.";
  printf("\nsting a=%s\nsting b=%s\n",a,b);
  copy_sting(a,b);
  printf("\nsting a=%s\nsting b=%s\n",a,b);
}
   
结果,,
                                                                             

sting a=I am a teacher
sting b=you are a student.
段错误

                                                                                
烦神看看,,,

论坛徽章:
0
2 [报告]
发表于 2004-09-07 20:23 |只看该作者

指针问题,,,烦神看看,,,

main()
{
char a[20]={I am a teacher};
char b[20]={you are a student};
printf("\nsting a=%s\nsting b=%s\n",a,b);
copy_sting(b,a);
printf("\nsting a=%s\nsting b=%s\n",a,b);
}

这样你看看呢

论坛徽章:
0
3 [报告]
发表于 2004-09-07 20:30 |只看该作者

指针问题,,,烦神看看,,,

没分配内存

论坛徽章:
0
4 [报告]
发表于 2004-09-07 20:36 |只看该作者

指针问题,,,烦神看看,,,

main()
{
char a[20]={I am a teacher};
char b[20]={you are a student};
printf("\nsting a=%s\nsting b=%s\n",a,b);
copy_sting(b,a);
printf("\nsting a=%s\nsting b=%s\n",a,b);
}

你这个我编译不过,,
ep10.20.1.c: In function `main':
ep10.20.1.c:9: `I' undeclared (first use in this function)
ep10.20.1.c:9: (Each undeclared identifier is reported only once
ep10.20.1.c:9: for each function it appears in.)
ep10.20.1.c:9: syntax error before "am"
ep10.20.1.c:10: `you' undeclared (first use in this function)
ep10.20.1.c:10: syntax error before "are"




单,将  { 改成"就成功了,,


单,,我想这样,,就失去意义了,,


书上说,,


char *sting="I over China!";

可以用指针声明字符数组,,的,,

但我编译后,就是那个结果,,什么原因??能解释一下吗??
谢了,,

论坛徽章:
0
5 [报告]
发表于 2004-09-07 20:37 |只看该作者

指针问题,,,烦神看看,,,

char *a ="I am a teacher"; 这样是一个叫a的指针指象的是一个字符串 不能改变原来的值的大小 这样做是很危险的


---------------------------------------------------------------------
请高手指正

论坛徽章:
0
6 [报告]
发表于 2004-09-07 20:42 |只看该作者

指针问题,,,烦神看看,,,

哦,,你的意思是说,,

char *a ="I am a teacher";

只能用来赋值
用来打印可以,,

但一旦对字符数组进行改变,就出错,,


字符数组,最好用
char a[ ]="I am a theacher"
来声明,或赋值对吧??

论坛徽章:
0
7 [报告]
发表于 2004-09-07 20:43 |只看该作者

指针问题,,,烦神看看,,,

恩 我是这样理解的!可以把他想成一个常量!


----------------------------------------------------------
请高手指正

论坛徽章:
0
8 [报告]
发表于 2004-09-07 20:47 |只看该作者

指针问题,,,烦神看看,,,

常量??

你是说吧,用,

用指针声明的字符数组看成常量??

论坛徽章:
0
9 [报告]
发表于 2004-09-07 20:51 |只看该作者

指针问题,,,烦神看看,,,

编译成并能,运行了,,

谢谢,了,

论坛徽章:
0
10 [报告]
发表于 2004-09-07 20:52 |只看该作者

指针问题,,,烦神看看,,,

你是怎么做到的 是用你以前的方法还是别的?


QQ20120741
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP