找回密码
 注册
搜索
查看: 1392|回复: 4

[讨论] 求解决c语言问题!

[复制链接]
发表于 2011-9-2 23:11:15 | 显示全部楼层 |阅读模式
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<assert.h>
char*strcpy(char*s1,const char*s2);//_____111
int main(void)
{
  //char a[7];
//char*str={NULL};
const char*s2="ssssss";
char*str=(char*)malloc(strlen(s2)+1*sizeof(char));
  //char*s3=a;
  //strcpy(str,2);
  strcpy(str,s2);
  if(str==NULL)
  printf("没有分配内存\n");
  free(str);

printf("%s\n",str);
  return 0;
  
}
char*strcpy(char*s1,const char*s2)//_-----2
{  
   assert((s1!=NULL)&&(s2!=NULL));
   char*address=s1;
    while(*s2)
        {
       
          *(s1++)=*(s2++);//等同 *s1++=*s2++
       
        }
/*        while(*s1==*s2)
        {
       
          s1++;
          s2++;
        }*/
*s1='\0';
return address;
为什么在程序的1 和2 地方加 cosnt 编译不过,不加程序ok
发表于 2011-9-5 10:52:58 | 显示全部楼层
char*s2="ssssss"; 试试看
点评回复

使用道具 举报

发表于 2011-9-9 17:53:56 | 显示全部楼层
数据类型不统一的问题.
点评回复

使用道具 举报

发表于 2011-9-22 15:53:54 | 显示全部楼层
呵呵,基础知识。
点评回复

使用道具 举报

发表于 2011-9-27 08:57:19 | 显示全部楼层
const本身的性质所决定的,
  const是用来修饰变量的,而你的这一句 const char*s2="ssssss";
  *s2 是一个指针常量了,说有在C编译中会报错。

  而 2 的地方,则是必须要与1处的函数调用参数类型保持一致~
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-26 00:38 , Processed in 0.224141 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表