任何人都能简单解释一下这些陈述的含义是什么吗?
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这样的陈述? 提前致谢
答案 0 :(得分:2)
1)这是一个名为“hi”的字符数组,初始化为字符串“HELLO \ 0”
2)这是一个包含3个ifstream对象的数组
3)这是10000个长双打的数组,第一个是10000
4)这是一个包含2000个字符指针的数组
5)这是一个名为foo的函数的声明,没有参数,返回一个int。
6)这是一个名为foo的函数的声明,它接受两个类型为double的参数,返回一个double。
7)这是对函数名称foo
的调用8)这是一个名为foo的函数的声明,它接受一个整数的引用并返回对整数的引用。
您可能会在文件中找到语句5,其中函数定义低于使用该语句的另一个函数。在这种情况下,使用foo的函数需要在编译器验证之前知道它的签名。这有时被称为前向声明。 同样适用于6& 8
7可以在大多数程序中找到,其中需要另外一个功能来完成一些工作。这通常用于将大量代码分解为更多可管理或可重用的块。
答案 1 :(得分:0)
为了在C ++中做任何事情,你需要知道这些陈述的含义。如果您正在尝试学习语言并实际构建甚至只是破解某些东西,那么您最好不要理解这些核心概念,而不是获得快速而肮脏的答案。任何在线参考或书籍都应该有关于函数和数组的章节,所以也许你可以从那里开始。