C语言---strlen陷阱

size_t strlen(char const *string);

返回值:无符号整型

该函数返回一个非负数值,因此在使用时需多加注意。

例如:

bool flag=strlen(“123”)> -1;

cout<

打印结果:

false

 

这是因为在有符号数和无符号数的比较过程中,有符号数会转变成无符号数,而-1的无符号表示的值为最大,所以flag==false。使用strlen()函数时需要注意。

sizeof操作符也返回无符号数,sizeof(int)<-1结果为真。

你可能感兴趣的:(C/C++基础知识)