int _tmain(int argc, _TCHAR* argv[])
{
Func("dd");
char szBuf[12] = "123456789";
char *p = "123456789";
::Sleep(1000);
printf("szBuf : %s/n",szBuf);
::Sleep(1000);
printf("p : %s/n",p);
::Sleep(1000);
printf("sizeof(p) : %d/n",sizeof(p));
::Sleep(1000);
printf("sizeof(szBuf) : %d/n",sizeof(szBuf));
::Sleep(1000);
return 0;
}
打印结果如下:
szBuf : 123456789
p : 123456789
sizeof(p) : 4
sizeof(szBuf) : 12
通过测试发现,对于这种字符数组,和字符串指针是有区别的,字符数组他保存了字符数组大小的信息,而字符串指针则没有!!!!
对于字符数组通过sizeof算出来的大小并不是实际存储的字符大小,而是他本身定义的大小!!