gpt4 book ai didi

javascript - Actionscript-Javascript中C++指针的概念

转载 作者:太空狗 更新时间:2023-10-29 20:05:11 27 4
gpt4 key购买 nike

学习 C++ 的基础知识并尝试围绕指针以及何时使用它们进行思考。来自 Javascript-Actionscript 背景,我想不出任何类似的东西。

谁能建议 Javascript 或 Actionscript 3 中指针的任何等效项,以及您何时可能使用它们?

最佳答案

快速简单的答案是,在 javascript 或 actionscript 中没有与指针类似的东西,但我也许可以为您画一些微妙的比喻。

所有语言都实现了指针提供给您的功能,但大多数现代语言都对程序员隐藏了它们。 C/C++ 通过公开它们并要求您使用它们来为您提供强大的功能;大多数其他语言通过隐藏它们来防止程序员伤害自己。对自己的内存管理负责可能很危险。另外,请记住,C 和 C++ 是比 JavaScript、ActionScript 甚至 Java 或 C# 更早的语言——指针语法在那些“原始”时代是必需的。 (C 在内存管理方面非常接近汇编代码,而 C++ 直接来自 C。)

但是每种编程语言仍然需要管理内存——它们必须允许您创建(新)变量、访问这些变量并存储对它们的引用。函数也是如此。

看看你做的一些事情,并用指针思维来思考它们。

  • 当您将变量设置为命名函数时,您的虚拟机会在内存中查找该函数,并将变量设置为指向该内存。 (在 C 中,这称为函数指针。C++ 也使用它。)
  • 当您将一个变量设置为匿名函数时,您的虚拟机会在内存中的某处创建该函数,将变量设置为指向其内存中的该区域并让您引用它。
  • 当您调用 new 时,您正在创建一个新的引用。同样,虚拟机在内存中创建一个位置,并为您提供访问它的方法。
  • 当您将对象传递给函数时,您并不是在传递整个对象,而是在传递对它的引用。 VM 使用您的变量来告诉函数要使用内存的哪一部分以及它应该如何表现。

如果您开始使用 C/C++ 进行大量编程,您会发现几乎在您所做的所有事情中都使用指针(和引用,这是一个相关的概念)。一旦你习惯了它,你会发现你一直在使用类似的概念——你只是不必明确地意识到你在做什么。您将更加了解每种编程语言与其内存有什么关系 - 无论是隐式还是显式。

关于javascript - Actionscript-Javascript中C++指针的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14861644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com