一、sizeof()是运算符,参数为数组、指针、对象、函数等。
它的功能:获取参数在内存中所占空间的字节数。
数组——编译时分配的数组空间大小;
指针——存储该指针所用的空间大小(存储该指针的地址的长度,32位机器为4,64位为8,由RAM的地址线宽度决定);
类型——该类型所占的空间大小;
对象——对象的实际占用空间大小;
函数——函数的返回类型所占的空间大小。
二、strlen()是函数(函数可以重载,运算符不可以),
它的功能:返回字符串的长度。从字符串的第一个地址开始,直到遇到结束符 /0(不包含该结束符)。
c语言使用字符数组代替字符串,且字符数组保存字符串时,最后一个必须为结束符'\0'
char str[8]="hello"; strlen(str)=5; sizeof(str)=8;
char * test = new char[10]; sizeof(test )=4;sizeof(*test )=1; //test为char *类型,该类型所占字节数为4(32位机器),*test为该指针所指空间的字符,所以长度为1。