cpp(15):错误C2182:'input':非法使用'void'类型

0 c++ void

在重新开始我用于学习阵列如何与void组合工作的新程序之后我遇到了以下问题.

cpp(15): error C2182: 'input' : illegal use of type 'void'
Run Code Online (Sandbox Code Playgroud)

有谁知道是什么原因造成的?我是虚空和数组概念的新手.

#include "stdafx.h"
#include <iostream>
using namespace std;
void input (int x );

int main()
{
    int x = 0;
    int a[ 5 ];
    input ( a[ 5 ]);
    {
        void input(x);
        for(int i = 1; i < 5; i++) {
            cin >> a [ i ];
        }
        cin.get();
        cout << a [ 3 ];
        cin.get();
    }
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*eld 5

您的代码有很多问题.它只是无效的C++.请记住,C++与任何其他编程语言一样,在语法方面是不可原谅的.如果它不是完全正确的语法,它就不会编译.你不能只写出你认为有意义的东西.您需要学习正确的语法并应用它.

看起来你想要从for循环到最后的所有东西都是cin.get()被调用函数的一部分input.为此,您需要使用适当的语法来定义函数,并且您需要在任何其他函数之外执行此操作:

void input(int x) {
  for(int i = 1; i < 5; i++) {
    cin >> a [ i ];
  }
  cin.get();
  cout << a [ 3 ];
  cin.get();
}
Run Code Online (Sandbox Code Playgroud)

但这仍然有问题.参数类型是int,但看起来你想要传递整个数组:

void input(int x[])
Run Code Online (Sandbox Code Playgroud)

请注意,这实际上不是数组类型参数,但实际上是指针.将数组传递给此函数时,x将是指向其第一个元素的指针.这[]只是一个方便的语法.

然后,而不是传递a[5]给函数(这是不存在的,因为只有一个元素a[0]a[4]存在),你应该只是个过客a:

input(a);
Run Code Online (Sandbox Code Playgroud)

你也循环14- 我不确定这是否是故意的.如果要为数组的每个元素输入一个值,则应该循环04.