C/C++ 错误: "[Error] invalid types 'int[int]' for array subscript" 解决方法
这个错误是由于使用了不合法的类型来进行数组下标操作引起的。在C或C++语言中,数组的下标必须是整数类型,而不能是其他类型,比如数组、浮点数等。\n\n例如,以下代码会导致此错误:\n\nc++\nint arr[10];\nint index = 5;\nint arr2[5] = {1, 2, 3, 4, 5};\narr[arr2[index]] = 10; // 错误:arr2[index] 不是整数类型\n\n\n因为 arr2[index] 返回的是一个整数,而 arr 数组的下标需要整数类型,所以就会产生 invalid types 'int[int]' for array subscript 错误。\n\n解决方法:\n\n为了解决这个问题,需要确保数组下标的类型是整数类型。可以使用以下方法:\n\n1. 使用整数变量作为下标:\n\nc++\nint arr[10];\nint index = 5;\narr[index] = 10; // 正确:index 是整数类型\n\n\n2. 使用表达式计算得到整数下标:\n\nc++\nint arr[10];\nint index = 5;\nint value = 2 * index - 1;\narr[value] = 10; // 正确:value 是整数类型\n\n\n3. 确保 arr2[index] 返回的值是有效的整数范围:\n\nc++\nint arr[10];\nint index = 5;\nint arr2[5] = {1, 2, 3, 4, 5};\nint value = arr2[index]; // 确保 value 在 0-9 之间\nif (value >= 0 && value < 10) {\n arr[value] = 10; \n} else {\n // 处理错误情况\n}\n\n\n通过以上方法,可以避免 invalid types 'int[int]' for array subscript 错误。
原文地址: https://www.cveoy.top/t/topic/p5KB 著作权归作者所有。请勿转载和采集!