在 C++ 中声明带或不带方括号的数组有区别吗?

Is there a difference in declaring an array with or without square braces in C++?

我还是 C++ 的新手,我有一个关于数组作为函数/构造函数中的参数的问题。我已经意识到可以通过两种方式声明数组(也许还有更多,我以前没见过):
1.

    void foo(int arr[]);

2.

    void foo(int arr);

在这两种情况下,arr 可以按以下方式使用:

   arr[0] = 1;

但这两者有什么区别呢?或者这只是一个清晰度问题?

区别是一个是变量,一个是数组。

void my_func(int array[]); // Function with array parameter.
void your_func(int variable); // Function with variable parameter.

表示法:

int v;
v[5] = 6;

应该生成编译错误或警告,因为 v 变量既不是数组也不是指针。