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

时间:2017-12-29 23:46:48

标签: c++ arrays declaration brackets

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

    void foo(int arr[]);

2

    void foo(int arr);

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

   arr[0] = 1;

但那些有什么区别?或者只是一个清晰的问题?

1 个答案:

答案 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变量不是数组也不是指针。