免费注册 查看新帖 |

Chinaunix

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

[函数] 求大牛帮忙解释一下函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-14 20:09 |只看该作者 |倒序浏览
#include <string.h>



char * sstrcat( char *str1, const char *str2)

{

       int m,n ;

       char t;

       char * str;

       m=strlen(str1);

       n=strlen(str2);

       t=new char [n+1];

       str=new char [m+n+1];


       t=strcpy(t,str2);

       str=strcpy(str,str1);

       str=strcat(str,str1);

       delete str1;

       delete t;

       return str1;

}

这是书上重写的strcat函数。我有几个地方(粗体,加下划线的几句)不明白,请大牛们指教。
为什么把 t 声明称 char 而不是char*  ?
还有,指针指向的是地址,指针变量不是只存一个地址就行了么?为什么还要另外给那么多空间?

论坛徽章:
0
2 [报告]
发表于 2009-06-14 20:18 |只看该作者
这也算重写的strcat,里面居然还调用strcat,看看微软的
char * __cdecl strcat (
        char * dst,
        const char * src
        )
{
        char * cp = dst;

        while( *cp )
                cp++;                   /* find end of dst */

        while( *cp++ = *src++ ) ;       /* Copy src to end of dst */

        return( dst );                  /* return dst */

}

t的类型显然应该是char *
指针是一个变量,在32位os下占4个字节,里面存放这一个地址。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP