【问题标题】:Is there a difference in declaring an array with or without square braces in C++?在 C++ 中声明带或不带方括号的数组有区别吗?
【发布时间】:2018-06-10 07:24:30
【问题描述】:

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

    void foo(int arr[]);

2.

    void foo(int arr);

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

   arr[0] = 1;

但它们之间有什么区别?还是只是为了清楚?

【问题讨论】:

  • 我从来没有听说过[] 被称为角括号,人们只是称它们为“方括号”或“方括号”。有时我听到<> 被称为“尖括号”。
  • 这些是方括号而不是尖括号。 :)
  • 也许你的意思是(int *arr) 在你的2号?
  • {} - 大括号<> - 尖括号[]- 方括号 @987654333 @ - 括号.

标签: c++ arrays declaration brackets


【解决方案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 变量既不是数组也不是指针。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多