int InsertByValue(int array[], int & array_size, int value)
{
int desired_index;
int InsertByIndex;
desired_index = BinarySearch(array[],array_size, value, index,0, array_size - 1);
InsertByIndex(array[], array_size, desired_index, value, desired_index);
};
/*
it is saying that for desired_index; and InserByIndex;
No idea why it would be saying that. Anyone know?
*/
答案 0 :(得分:1)
因此,当C ++告诉您它“期望一个表达式”时,它的意思是您无意中告诉它您打算提供一系列运算符和操作数,或者将由某个运算符操作的对象或数据(例如“ = “或” +”)。
由操作数(数据或对象)和运算符(“ +”,“ =”或“ + =“和” []“)组成的组合构成一个表达式。
现在问题的根源在这里: 当像在InsertByValue函数中一样在C ++中声明一个函数时,必须告诉它传递到该函数中的一项是数组。这就是为什么在第一行的函数定义中放入“ []”的原因。
但是,当您稍后在函数中使用这些数组时,“ []”将充当从该数组中获取对象的运算符。而且当有一个运算符时,就需要有您没有提供的操作数。
简而言之,在您对InsertByIndex和BinarySearch的调用中不需要“ []”。
答案 1 :(得分:0)
第一个问题是其他人提到的内容,即在函数体内的函数调用中不需要[]
after数组。
由于int InsertByIndex;
是一个函数名,因此出现InsertByIndex
的错误。并且函数名称不能再次声明为int
变量的名称。由于它是一个函数,因此编译器认为您正在调用它,并且期望标识符后的(..args...)
。如果找不到,则会引发错误。