在重新开始我用于学习阵列如何与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)
您的代码有很多问题.它只是无效的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)
你也循环1到4- 我不确定这是否是故意的.如果要为数组的每个元素输入一个值,则应该循环0到4.
| 归档时间: |
|
| 查看次数: |
5302 次 |
| 最近记录: |