为什么我的函数打印地址而不是数组的内容?

Why does my function print an address instead of the contents of my array?

我的代码应该删除指定值并移动数组。当我 运行 代码时,它打印一个地址而不是数组的内容。我的代码有什么问题?

using namespace std;
void arrayShift(int arr[], int length, int value) {
  for(int i = 0; i<length; i++) {
    if(arr[i] == value) {
      for (int k = i; k<length-1 ; k++) {
        arr[k] = arr[k+1];
      }
      arr[length-1] = 0;
      i--;
    }
  }
  cout << arr;
}

int main() {
  int inputarr[]={9,8, 9, 9, 9, 9, 6};
  int length = 7;
  int value = 9;
  arrayShift(inputarr,length,value);
}

cout << arr;

显示一个地址,因为cout 不直接显示数组。

您应该使用 for 来显示您的所有值。类似的东西:

for(int i = 0 ; i < length ; i++)
    cout << arr[i];

但是你真的应该把输出(对于 cout)放在 main 函数中。