在']'之前的初级表达错误含义

时间:2013-04-19 17:40:48

标签: c++ syntax-error

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

// 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 个答案:

答案 0 :(得分:4)

不需要方括号。

countOnes(array[], arraySize);

答案 1 :(得分: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 )

答案 2 :(得分:1)

&#39;阵列&#39;在Microsoft的C扩展名中被视为保留字。 见Why is "array" marked as a reserved word in Visual-C++?。替换&#39;数组&#39;通过别的东西,例如&#39; ARR&#39;

答案 3 :(得分:0)

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

 void countOnes( int* array, int size );