没有与这些操作数匹配的“[]”运算符,如何解决?

img


visual studio显示没有与这些操作数匹配的“[]”运算符,这个应该如何修改?为什么会报错?

你这个song 不是 Songs类 嘛, 咋能用数组取元素的方式呢? 你后面 数组变量写错了吧

img

  • 以下回答由chatgpt基于相关博客总结生成:

    首先,根据错误信息,我们需要检查数组索引运算符"[]"的使用是否符合语法规则。如果语法没有问题,我们需要进一步检查该数组是否已经被正确定义和初始化。如果数组定义和初始化没有问题,那么我们需要进一步检查数组索引是否超出了范围,例如访问了不存在的元素或者使用了负数索引。

    对于调试问题,我们可以使用VS的调试功能,设置断点并逐步执行代码来查看问题所在。可以从代码的上下文中推断出代码逻辑的不足或误用。

    可能还需要考虑其他因素,例如编译器版本、编译设置等等。如果以上检查没有发现问题,我们可以进一步查看编译器的错误输出信息,尝试从中推断出原因。

    下面是一个简单的例子,展示了如何使用C语言中的数组索引运算符"[]"。我们创建了一个长度为10的整型数组,并初始化每个元素的值为其索引值。然后我们通过一个循环打印出这个数组中的所有元素。

    #include <stdio.h>
    
    int main() {
        int arr[10];
        int i;
    
        for (i = 0; i < 10; i++) {
            arr[i] = i;
        }
    
        for (i = 0; i < 10; i++) {
            printf("%d ", arr[i]);
        }
    
        return 0;
    }
    

    这段代码在运行时应该没有问题,因为数组的索引值都是合法的。如果我们在第二个循环中使用了一个非法的索引值,例如"arr[10]",那么编译器就会提示"[]运算符没有与操作数匹配"这个错误信息。