2024-10-13 17:42:25
上面是我的例子,和你的是不是很像?也有你说的“乱码”的问题。
首先你要明白一个概念:数组越界。大概意思就是你要访问的数组下标超过了数组的长度。
你在定义a数组的时候没有显示指定数组长度,那么数组长度会根据实际的数据长度决定。就是"i love you oov"的长度,是14(即14个字符),但是你在使用下标访问a数组中的元素时,却到了30.那么这些超过了数组长度的元素是什么?是一些随机值。这些随机值不属于数组,只是刚好在你访问的内存中。而当你指定数组长度为100时,因为30小于一百,所以并不会造成越界访问,也就没有乱码的问题。在其他一些高级语言中(如java),这种越界访问在运行时是会报错的,但是c语言没有做这个限制。但是程序猿自己要清楚,一定不能数组越界。
等以后学习深了,可以了解一下数据在内存中的存储等,有助于理解编程的机制。
2024-10-13 09:45:27