在 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
变量既不是数组也不是指针。
我还是 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
变量既不是数组也不是指针。