Chinaunix

标题: 求大牛帮忙解释一下函数 [打印本页]

作者: 增强功能    时间: 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*  ?
还有,指针指向的是地址,指针变量不是只存一个地址就行了么?为什么还要另外给那么多空间?
作者: felixzxh    时间: 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个字节,里面存放这一个地址。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2