关于宽字符自定义函数返回值的有关问题(wchar_t,wcscat)

关于宽字符自定义函数返回值的问题(wchar_t,wcscat)
最近通过指针+字符串处理的方式学习指针的应用,在实现了ANSI版的strcat()后,接着写wcscat(),同时在网上搜到一段代码,执行后,发现返回值似乎都不是我想要的。网摘的代码如下:

C/C++ code

wchar_t *wcscat(wchar_t *s1, const wchar_t *s2)
{
  wchar_t *p;
  wchar_t *q;
  const wchar_t *r;

  p = s1;
  while (*p)
    p++;
  q = p;
  r = s2;
  while (*r)
    *q++ = *r++;
  *q = '\0';
  return s1;
}



调用:
C/C++ code

    wchar_t s1_t[]=L"ABCD";
    wchar_t s2_t[]=L"EFGH";
    wchar_t *out_t = wcscat(s1_t,s2_t);
    wprintf(L"%ls\t%d\n",out_t,sizeof(out_t));



运行结果:ABCDEFGH, 可是sizeof(out_t) = 4,为什么?

------解决方案--------------------
亲,这个是指针的长度,你应该用strlen这类的函数来看字符串的长度
------解决方案--------------------
同意1楼,
sizeof(*) = 4
wcslen(out_t)=字符串的长度