1

我正在尝试修复有错误的代码,但还有一个错误我无法弄清楚。错误说: ']' 标记之前的预期主表达式,这是什么意思?我检查了放错位置的分号和变量名,但找不到任何东西。这是我的代码(我已经用错误注释了该行):

// countOnes.cpp
#include<iostream>
#include<cstdlib>
using namespace std;

void countOnes( int array[] ); // Count the number of 1s in a given int array.
const int arraySize = 10;
int array[ arraySize ];
int countOne = 0;

int main()
{
  for ( int i = 0; i <= arraySize; i++ )
  {
    array[ i ] = rand() % 3;  // Fill array with 0, 1 or 2 randomly
    cout << array[ i ] << " ";
  }
  countOnes( array[], arraySize ); //ERROR

  cout << "\n The number of 1s in the array: " << countOne;

  return 0;
}

void countOnes( int array[], int arraySize )
{
  for ( int i = 0; i <= arraySize; i++ )
    if ( array[ i ] == 1 )
      countOne = countOne + 1;
  return;
}
4

4 回答 4

4

不需要方括号。

countOnes(array[], arraySize);

于 2013-04-19T17:42:10.787 回答
2
countOnes( array[], arraySize ); //ERROR

你不需要 [] 这里
也声明

void countOnes( int array[] ); // Count the number of 1s in a given int array.

不符合其定义

void countOnes( int array[], int arraySize )
于 2013-04-19T17:43:32.637 回答
1

'array' 在 Microsoft 的 C 扩展中被视为保留字。请参阅为什么在 Visual-C++ 中将“array”标记为保留字?. 将“array”替换为其他内容,例如“arr”。

于 2013-04-19T17:52:37.713 回答
0

如果要传递数组,可以将指向第一个元素的指针传递给数组:

 void countOnes( int* array, int size );
于 2013-04-19T17:43:46.127 回答