21xrx.com
2024-11-25 05:16:44 Monday
登录
文章检索 我的文章 写文章
C++指针赋值是否涉及内存拷贝?
2023-07-09 16:08:30 深夜i     --     --
C++ 指针 赋值 内存拷贝

C++指针赋值并不涉及内存拷贝。指针在C++中是一个变量,它保存了某个对象的地址。当我们用一个指针给另一个指针赋值时,只是将一个指针的值复制给了另一个指针,没有涉及到任何内存拷贝的过程。

当我们使用指针访问对象时,实际上是在操作对象的内存。因此,我们可以通过指针来改变对象的值。例如:


int a = 10;

int* p = &a; // p指向a的内存

*p = 20; // 改变a的值为20

上面的代码中,我们先定义了一个int变量a,然后定义了一个int指针p,将p指向a的内存。接着,我们用指针p来修改a的值为20,这个过程并不会涉及内存拷贝。

另外需要注意的是,当我们将指针赋值为0或nullptr时,这实际上是将指针指向了空地址。指向空地址的指针不能访问任何有效的对象,因此需要小心使用。

总之,C++指针赋值并不涉及内存拷贝,它仅仅是将一个指针的值传递给另一个指针。指针可以用于改变对象的值,但需要小心使用以避免指针悬挂等问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复