当前位置: 首页 > 面试题库 >

您如何解释指向C#/ Java开发人员的C ++指针?

沃学
2023-03-14
问题内容

我是一位尝试学习C ++的C#/Java开发人员。当我尝试学习指针的概念时,我为自己必须已经处理过这种概念而感到震惊。如何仅使用.NET或Java开发人员熟悉的概念来解释指针?我 真的
从来没有处理过它吗,它只是对我隐藏了,还是我一直不使用它就一直使用它?


问题答案:

C ++中的Java对象

Java对象等效于C ++共享指针。

C ++指针就像一个Java对象,没有内置垃圾回收。

C ++对象。

C ++具有三种分配对象的方式:

  • 静态存储持续时间对象。

    • 它们是在启动时(在main之前)创建的,在main退出后死亡。
      对此有一些技术警告,但这是基础。
  • 自动存储持续时间对象。

    • 它们在声明时创建,并在超出范围时销毁。
      我相信这些就像C#结构
  • 动态存储持续时间对象

    • 它们是通过新的和最接近的C#/ Java对象( AKA指针 )创建的。
      从技术上讲,指针需要通过手动销毁delete。但这被认为是不好的做法,在正常情况下,它们会放在控制其寿命的自动存储持续时间对象(通常称为智能指针)中。当智能指针超出范围时,它将被销毁,并且其析构函数可以调用delete该指针。智能指针可以看作是细粒度的垃圾收集器。

最接近Java的是shared_ptr,这是一个智能指针,它可以统计指针用户的数量,并在没有人使用它时将其删除。



 类似资料:
  • 问题内容: 我是Java菜鸟。我已经掌握了将C / C ++指针转换为Java引用的概念,并且进展相当顺利。 我打了一段有指针的代码(即* ptr)。我需要取消引用指针并更改其指向的指针的值(即 ptr =&newthing;) 在Java中这似乎要困难得多。是否有人对如何解决此问题有任何想法?快速谷歌搜索什么都没有。 这是C ++中的代码示例。我想在Java中获得类似的工作,但是ptr_to_p

  • C++ 类 & 对象 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算符 ->,就像访问指向结构的指针一样。与所有的指针一样,您必须在使用指针之前,对指针进行初始化。 下面的实例有助于更好地理解指向类的指针的概念: #include <iostream> using namespace std; class Box { public:

  • C++ 数组 您可以先跳过本章,等了解了 C++ 指针的概念之后,再来学习本章的内容。 如果您对 C++ 指针的概念有所了解,那么就可以开始本章的学习。数组名是一个指向数组中第一个元素的常量指针。因此,在下面的声明中: double balance[50]; balance 是一个指向 &balance[0] 的指针,即数组 balance 的第一个元素的地址。因此,下面的程序片段把 p 赋值

  • 本文向大家介绍C++指向函数的指针实例解析,包括了C++指向函数的指针实例解析的使用技巧和注意事项,需要的朋友参考一下 通常来说C++函数指针是指指向函数的指针,而非指向对象的指针。就像其他指针一样,函数指针也指向某个特定的类型。函数类型由其返回类型以及形参表确定,而与函数名无关。 定义: 赋值: fp=function; 调用 (*fp)(10,100); volatile的用法和作用: con

  • 本文向大家介绍解析C++中指向对象的指针使用,包括了解析C++中指向对象的指针使用的使用技巧和注意事项,需要的朋友参考一下 C++指向对象的常指针 将指针变量声明为const型,这样指针值始终保持为其初值,不能改变。 如: 定义指向对象的常指针的一般形式为: 也可以在定义指针变量时使之初始化,如将上面第2, 3行合并为: 请注意,指向对象的常指针变量的值不能改变,即始终指向同一个对象,但可以改变其

  • 本文向大家介绍C语言 函数指针(指向函数的指针)详解,包括了C语言 函数指针(指向函数的指针)详解的使用技巧和注意事项,需要的朋友参考一下 一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。这种指针就