C语言库函数strlen的迷惑行为

C语言库函数strlen的迷惑行为_第1张图片
C语言库函数strlen的迷惑行为_第2张图片

题目:计算下面程序打印出来的结果

C语言库函数strlen的迷惑行为_第3张图片

附1:MSDN关于strlen库函数的解释

C语言库函数strlen的迷惑行为_第4张图片

题解思路:

1.从MSDN关于库函数strlen的解释中我们可以知道,strlen库函数的返回值是一个无符号整形!!!这是重点,所以当我们用两个strlen计算两个字符串长度后进行算术运算之后,就算是负数也将会被强制转换为无符号整数,也就是一个非常大的正数。所以打印出来是“你真聪明”。
2.举个例子加深大家的理解,假设你的祖祖辈辈都是实打实的黄种人,那么生出来的你也只能是黄种人,不然就是发生基因突变了。

运行结果

C语言库函数strlen的迷惑行为_第5张图片

备注:楼主不才,不喜勿喷,若有错误或需要改进的地方,非常感谢你的指出,我会积极学习采纳。谢谢家人们一直以来的支持和鼓励,我会继续努力再接再励创作出更多优质的文章来回报家人们的。编程爱好的xdm,若有编程学习方面的问题可以私信我一同探讨(我尽力帮),毕竟“众人拾柴火焰高”,大家一起交流学习,共同进步!

C语言库函数strlen的迷惑行为_第6张图片

你可能感兴趣的