有如下代码,判断打印结果是"hehe"还是"haha""
strlen("abc")的结果为3,
strlen("abcdef")的结果为6,
3-6=-3,-3<0,可是结果显示"hehe"
原因是库函数strlen规定返回类型为size_t(即无符号数)
所以-3在内存看来是无符号数,符号位上的1按无符号数处理,所以结果一定大于0,输出"hehe"。
有如下代码,判断打印结果是"hehe"还是"haha""
strlen("abc")的结果为3,
strlen("abcdef")的结果为6,
3-6=-3,-3<0,可是结果显示"hehe"
原因是库函数strlen规定返回类型为size_t(即无符号数)
所以-3在内存看来是无符号数,符号位上的1按无符号数处理,所以结果一定大于0,输出"hehe"。