首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言字符串指针的有关问题 环境vc++6.0

2012-09-10 
c语言字符串指针的问题 环境vc++6.0#include stdio.hvoid sstrcpy(char *s,char *t){while(*s++*t++)/

c语言字符串指针的问题 环境vc++6.0
#include <stdio.h>
void sstrcpy(char *s,char *t)
{
while(*s++=*t++);

//while (*t!='\0')
//{
//*s++=*t++;

//}
//*s='\0';
}
void main(){
char *s1="1213\0",*s2="dfasfdas";//[color=#FF6600][/color]这里vc报错 但改成char s1[]="1213\0",*s2="dfasfdas";就正常运行 求高手解答原因!!!!!!
  sstrcpy(s1,s2);
printf(s2);
}

[解决办法]
又是这种问题,char *s1=“1213”;
这里的1213是常量,存储在常量区,strcpy(s1,s2),这里s1所指向的常量数据被修改,编译器一般来说会崩溃,常量是不允许被修改的,而char s1[]="1213",这里是数组,既s1[]={'1','2','1','3'},这里不是常量,所以直接修改没有问题,反正你记住,一般字符串的操作,第一个一般都不能是指针,用数组,比如strcpy,strcat等
[解决办法]

探讨
注意
char *p="abc"; 和 char p[]="abc"; 之间的差异

热点排行