C语言中数组问题
书本例题中为chars[100]。主函数为{chars[100];puts(get(s));}我把它改为chars[5],此时我能正常输入8个字符。但是我改成chars[...
书本例题中为char s[100]。
主函数为{char s[100];
puts(get(s));
}
我把它改为char s[5],此时我能正常输入8个字符。但是我改成char s[8]时,仍旧只能正常输入8个字符。我不明白为什么8个数组与5个数组能正常输入的内容一样。
求指点。 展开
主函数为{char s[100];
puts(get(s));
}
我把它改为char s[5],此时我能正常输入8个字符。但是我改成char s[8]时,仍旧只能正常输入8个字符。我不明白为什么8个数组与5个数组能正常输入的内容一样。
求指点。 展开
4个回答
展开全部
只能说你的运气是相当的好,程序没崩掉!在你这样的情况下,你是可以无限制的输入,只要电脑的内存足够大!!
你的问题还是出现在
1)、数组与指针的问题、还有就是puts()与gets()的函数的实现运行机制上你不了解。
数组名就代表本数组在内存分陪的内存的首元素的首地址,也是本数组的地址。
gets()函数是字符串输入函数,传入的参数是个指针形式(即地址),是从标准输入流接收字符串,函数会自己本身在字符串输入完成后加上字符串结束符'\0’;
puts()函数是字符串输出函数,传入的参数是个指针形式(即地址),是向标准输出流输出字符串,函数会在遇到字符串结束符'\0’后停止输出。
2)、数组的越界操作,是非常危险的,还有,对需要地址的函数传入数组名,系统是不会做数组的越界判定操作的,它将视为合法操作,就像你的这个题一样。
你可以进到软件的函数库里查看函数的实现体,了解其的工作原理。
你的问题还是出现在
1)、数组与指针的问题、还有就是puts()与gets()的函数的实现运行机制上你不了解。
数组名就代表本数组在内存分陪的内存的首元素的首地址,也是本数组的地址。
gets()函数是字符串输入函数,传入的参数是个指针形式(即地址),是从标准输入流接收字符串,函数会自己本身在字符串输入完成后加上字符串结束符'\0’;
puts()函数是字符串输出函数,传入的参数是个指针形式(即地址),是向标准输出流输出字符串,函数会在遇到字符串结束符'\0’后停止输出。
2)、数组的越界操作,是非常危险的,还有,对需要地址的函数传入数组名,系统是不会做数组的越界判定操作的,它将视为合法操作,就像你的这个题一样。
你可以进到软件的函数库里查看函数的实现体,了解其的工作原理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当s[5]时候应该是随便输入多少个但是只接收前4个字符串数组是提供一个首地址然后逐渐存放的,当然有时候运行出问题也是有可能的,相信自己的判断。
还有,不懂可追问,望采纳
还有,不懂可追问,望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己翻书。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询