【问题标题】:What do the following declarations mean? [closed]以下声明是什么意思? [关闭]
【发布时间】:2014-05-26 02:45:49
【问题描述】:

谁能简要解释一下这些语句的含义?

1) const char hi [] { 'H', 'E', 'L', 'L', 'O', '\0' }; 2) ifstream fileObjs [3]; 3) long double bigNums [10000] = { 10000 }; 4) char* strRefs [2000];

5) int foo(); 6) double foo(double, double); 7) foo(24); 8) int& foo (int& chat);

另外,我可能会找到像 5、6、7、8 这样的语句吗? 提前致谢

【问题讨论】:

  • 所有这些都会在任何一本书中得到很好的解释。
  • 帮自己一个忙,拿起good book on C++
  • 这个问题似乎离题了,因为任何具有基本 C++ 知识的人都知道答案,对社区没有真正的用处

标签: c++ declaration statements


【解决方案1】:

1) 这是一个名为“hi”的字符数组,初始化为字符串“HELLO\0”

2) 这是一个包含 3 个 ifstream 对象的数组

3) 这是一个包含 10000 个 long double 的数组,第一个是 10000

4) 这是一个包含 2000 个字符指针的数组

5) 这是一个名为 foo 的没有参数的函数的声明,它返回一个 int。

6) 这是一个名为 foo 的函数的声明,它接受两个参数,都是 double 类型,返回一个 double。

7) 这是对函数名 foo 的调用

8) 这是一个名为 foo 的函数的声明,它接受一个整数的引用并返回一个整数的引用。

您可能会在函数定义位于使用该语句的另一个函数下方的文件中找到语句 5。在这种情况下,使用 foo 的函数需要在编译器验证它之前知道它的签名。这有时称为前向声明。 6 和 8 相同

7 可以在大多数需要另一个函数来完成某些工作的程序中找到。这通常用于将大段代码分解成更易于管理或可重用的块。

【讨论】:

  • 3) 不正确。只有第一个是 10000,其余的都是 0。
  • 是的,抱歉,会修复的。
  • And 2) 是无效声明(ifstream 不是默认可构造的)。
  • jrok,怎么会这样?它不一定是 std::ifstream,它可以是一个定制的对象或结构,称为 ifstream
【解决方案2】:

为了在 C++ 中做任何事情,您需要知道这些语句的含义。如果您正在尝试学习该语言并实际构建甚至只是破解某些东西,那么您最好理解这些核心概念,而不是获得快速而肮脏的答案。任何在线参考资料或书籍都应该有关于函数和数组的章节,所以也许你可以从那里开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    相关资源
    最近更新 更多