sizeof() 编译期
strlen() 运行时
所以strlen(string)即为该字符串的真是长度(不包含‘\0’)
但sizeof(string) 则为4(编译器不同值不同,但都是固定值)
所以有:
int size(int * t)
{
sizeof(t);
}
int a[100]= {0};
cout << sizeof(a) << " " << size(a);
输出 400 4
因为在编译期size()函数并不能确定传进来的结构
sizeof() 编译期
strlen() 运行时
所以strlen(string)即为该字符串的真是长度(不包含‘\0’)
但sizeof(string) 则为4(编译器不同值不同,但都是固定值)
所以有:
int size(int * t)
{
sizeof(t);
}
int a[100]= {0};
cout << sizeof(a) << " " << size(a);
因为在编译期size()函数并不能确定传进来的结构