看到别人写的函数,如果函数中的参数是字符指针的时候,往往还会传入另一个参数,即与字符指针对应的一个长度值。以前一直觉得有点多余,今天自己写程序发现,还确实很有必要。
比如下面2个函数:
void print(const char *text);
void print(const char *text, int len);
我想打印字符串text的长度,两者有什么不一样,或者哪个更灵活一些?
第一个函数,这样我们打印的时候,只能遇到 \0 时才结束,即遇到字符串结尾的标志,而在第二个函数这种方式下,我们可以打印从字符指针text开始的len长度的字符,即使没有\0结尾也没有关系。 所以类似的其它的处理的时候,有时候,当传入的参数为字符指针的时候,有必要再引入另一个长度的参数,来表明:此函数只处理从text开始的len个长度的字符。