1.参数
sizeof是c/c++ 中的一个操作符,其作用是返回对象或数据类型所占的内存字节数。
用法:sizeof(对象)、sizeof 对象、sizeof(类型)
如果类型做参数,返回的是该类型所占内存字节数,
对象做参数的几个常用的说明: sizeof(数组名) 返回的是数组所占空间字节数, 如:sizeof(数组名)/sizeof(数组元素类型) 计算数组大小。
sizeof(指针) 返回指针类型大小(32位机为4字节)
sizeof(*指针) 返回指针所指向数据类型的大小,如 char * pChar='a'; sizeof(*pChar) 为1字节。
strlen是c/c++ 中的一个函数,其作用是返回字符串的长度。
用法: strlen(char *pStr) 参数只能是字符指针。并且注意,字符指针指向的字符串必须以 结尾(原因是strlen就是根据 来判断字符指针是否结尾。)
另:数组名做函数参数的时候退化为指针。 但是上面可以看到 sizeof(数组名) 和sizeof(指针) 得到的是不一样的结果正好验证了 sizeof是操作符跟strlen函数的区别。
2.举例理解。
操作数组:char str[20] ="0123456789";
strlen(str) 10
sizeof(str) 20 20*sizeof(char)
sizeof(*str) 1 sizeof(char)
操作字符指针: char *pStr ="0123456789";
sizeof(pStr) 4
strlen(pStr) 10
sizeof(*pStr) 1
另:如果要获得字符串的长度,则一定要使用strlen 想想为什么吧。