本文共 309 字,大约阅读时间需要 1 分钟。
#include
void main()
{ char *tmp = "asdfasdfasdf\0";printf("tmp %d\r\n", sizeof(tmp));
exit(0);
}sizeof 计算这个char*的长度为8,机器为64位。如果32位的机器,长度为4. 如果换作是strlen的话,那就是直接到\0的长度12
如果换作是char数组,(char []tmp = "asdfasdfasdf\0";),sizeof = 13, strlen为12
以后有时间的话要把strlen的实现发散一下,其实就是用指针的++,最后到'\0'结束,计数。 并且要对char *是否为NULL进行判断。
转载地址:http://useji.baihongyu.com/