c语言 gets()会不会把原数组的值全部覆盖掉?比如原数组中有1234四个字符,通过gets输入abc,最终
3个回答
展开全部
gets()函数是输入一个字符串。而字符串默认是以'\0'结尾。当你gets输入为abc的时候,存入数组的内容应该是abc'\0'
共4个字符,覆盖了原来的4个数字。
如果你输入的事ab
则存在原数组的内容则是ab_4
楼主求采纳呦
记得给问豆啊!
共4个字符,覆盖了原来的4个数字。
如果你输入的事ab
则存在原数组的内容则是ab_4
楼主求采纳呦
记得给问豆啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gets得到的是字符串,而字符串是以'\0'结尾的啦。
如:
char
a[10];
gets(a);//你输入1234,则a里存储的内容是"1234\0",一共占了5个位置,不要忘了'\0'
gets(a);//这里你输入abc,则a存储的内容是"abc\0\0",看到没有两个\0了,而输出字符串,是遇到\0
//就结束的啦。如果你输入ab,则a存储的内容是"ab\04\0",你可以试着输出a[3],那么它会输出4,
//不信?你可以试一试啦
如:
char
a[10];
gets(a);//你输入1234,则a里存储的内容是"1234\0",一共占了5个位置,不要忘了'\0'
gets(a);//这里你输入abc,则a存储的内容是"abc\0\0",看到没有两个\0了,而输出字符串,是遇到\0
//就结束的啦。如果你输入ab,则a存储的内容是"ab\04\0",你可以试着输出a[3],那么它会输出4,
//不信?你可以试一试啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询