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

标签 javascript c++ actionscript-3

学习 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/

相关文章:

javascript - 使用 SendGrid 发送电子邮件的 DRY 代码

c++ - Windows 8 中的开发人员 C : gcc Internal Error

Java NIO 防止来自同一台 PC 的多个套接字连接

java - 从导致问题的 Java 进程附加到外部 C++ 进程

c++ - DirectX/C++ : Marching Cubes Indexing

actionscript-3 - AS2 按钮到 AS3

flash - Adobe 卷云 : Quickest way to deliver a chunk of data to a single peer with known id

javascript - 当 "#"已经是 URL 的一部分时使用 Fancybox 3

javascript - 编译额外文件时出现奇怪的 gulp-sass 问题

javascript - 用新数据重新加载 dynatree - destroy 方法或 reloadChildren 似乎不起作用