在 main() 内部和外部声明用户定义函数的区别2024年8月28日 | 阅读 4 分钟 函数在 main 内部和外部的声明与全局变量和局部变量相同。当我们把任何函数声明在 main 函数外部时,它就是全局定义的,并且处于全局作用域。当我们把任何函数定义在 main 函数内部时,它就处于 main 函数的局部作用域。因此,main 函数外部的任何函数都不能使用 main 函数内部的函数。 在 main 函数外部定义的函数可以被任何函数访问和使用,无论它是在 main 函数内部还是外部。 示例 1当我们把任何函数声明在 main() 函数外部时。 C++ 代码 输出 The difference is 2 说明 在上面的代码中,我们有两个函数定义在 main() 函数外部。一个函数用于执行减法,另一个是辅助函数。辅助函数被称为 diff 函数。由于这两个函数都在全局作用域中,所以没有错误。我们在函数中给出了两个整数值 5 和 3,得到了输出 2,即 5-3。 示例 2当我们把函数声明在 main() 函数内部时。 C++ 代码 输出 /tmp/stIpvIA8cL.cpp: In function 'void fxn(int, int)': /tmp/stIpvIA8cL.cpp:14:9: error: 'diff' was not declared in this scope 14 | diff(a, b); | ^~~~ 说明 在上面的代码中,我们将 diff 函数声明在 main 内部,并通过 helper 函数调用它,而 helper 函数声明在 main 外部。由于 diff 函数的作用域仅限于 main(),并且无法在 main() 函数外部访问,因此我们得到了错误。 注意:当我们有两个同名函数,但一个声明在 main 外部,一个声明在 main 内部,并且具有不同的函数签名时。如果我们调用全局函数,可能会因为忽略局部函数而出现错误。示例 3C++ 代码 输出 The difference is 2 说明 在上面的代码中,我们局部声明了函数,并在 main 内部调用了它,因此我们得到了结果,没有任何错误。我们在函数中给出了两个整数值 5 和 3,得到了输出 2,即 5-3。 示例 4C++ 代码 输出 g++ /tmp/stIpvIA8cL.cpp /tmp/stIpvIA8cL.cpp: In function 'int main()': /tmp/stIpvIA8cL.cpp:9:19: error: too few arguments to function 'int diff(int, int)' 9 | cout< 说明 在上面的代码中,我们有两种类型的 diff() 函数。一个 diff() 函数带参数,它返回两个数字的差值。另一个返回一个整数,不进行任何计算。因此,带参数的 diff() 函数声明在 main() 函数内部,并且它是 main() 的局部函数。另一个 diff() 函数声明在 main() 函数外部。在 main() 函数中,我们调用了不带参数的 diff() 函数,因为它是在全局定义的,所以我们可以在 main() 函数内部访问它。我们期望的答案是一个整数值,但它会报错,因为我们有相同的函数名,其中一个在局部声明,而我们正在调用一个全局函数。 因此,由于对局部函数的忽略,我们得到了错误。 下一主题C++ 中的 Isprint() |
问题陈述:您会得到一个数组,您的任务是根据整数次数将数组旋转一步。旋转数组意味着将数组的第一个元素移动到数组的最后一个元素,以便第一个元素...
阅读 4 分钟
在本教程中,我们将学习如何声明一个返回整数指针数组指针的 C/C++ 函数。第 1 部分:创建一个考虑 int* 参数并生成指向四个整数指针列表的指针的函数。虽然这乍一看可能很困难,...
阅读 3 分钟
为什么需要模板? C++ 要求我们使用特定类型来声明变量、函数和其他实体。但是,对于不同的类型,很多代码看起来是一样的。特别是如果我们实现算法,比如快速排序,或者数据结构的行为,比如链表或...
阅读9分钟
计算机科学中的树同构问题因其判断两个给定树是否具有同构关系的任务而引人入胜。它需要调查是否可以通过交换某些节点的左右子节点将一棵树转换为另一棵树。在这个...
5 分钟阅读
简介:C++ 中的数组是一组相同类型的数据元素,它们存储在单个内存块中。另一方面,交错数组是一种数组,其中每行的列数可以不同。“数组的数组”是另一种说法...
阅读 4 分钟
? C++ 因其能够结合效率和通用性而受到竞争性编程的青睐。运行时通过其低级功能进行优化,这些功能对算法进行细粒度控制。代码开发通过标准模板库 (STL) 进行简化,该库提供了现成的数据结构和算法。面向对象、过程式和...
阅读 4 分钟
简介:C++ 是一种高级编程语言,广泛用于创建应用程序和软件。C++ 编程中最重要的概念之一是流程控制,它指的是根据特定条件来指导程序流程的能力……
阅读 4 分钟
在 C++ 中,在数据类型之间进行转换通常是必需的。将双精度浮点数转换为字符串表示形式是一种常见场景。它允许将双精度值显示给用户或打印出来进行调试。双精度是 C++ 中的一种数据类型...
5 分钟阅读
一个简单的控制台应用程序或一个名为 C 语言吃豆人游戏的快速剪辑游戏是为了娱乐而制作的。与贪吃蛇游戏类似,吃豆人需要移动,使其沿着预定义的蓝色路径移动,然后它被吃豆人擦除或吃掉。...
阅读 23 分钟
C++ 提供了大量的数据结构,以实现高效灵活的编程。两个常用的容器是 `Forward List` 和 `List`,它们各有其特点和用途。在本文中,我们将讨论 `Forward List` 和……之间的区别。
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India