什么都没输入,输出的是I love,什么原理

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img


这里拿到了已定义字符串前7位了

str是个char数组,那么它自身的值也是数组的首地址
str+7就是str[7]的地址
当你向gets函数里面传入了str+7,那么相当于实际从键盘键入的内容,会被赋值到str[7]开始的数组里
如果你什么都不键入,那么其实相当于键入了一个‘\0’,或者叫空字符串
那么就把原来的完整字符串截断了,就只剩下前7个字符了
你下次随便键入个abc再打印看看就能更好的理解到底是怎么回事了
说一千道一万,因为你的字符串有初始值,而且gets时带偏移量,所以什么都不键入还能打印出东西来
如果你传入的不是str+7而是str,那么你输入什么就打印什么