21xrx.com
2024-11-22 10:10:12 Friday
登录
文章检索 我的文章 写文章
"C++中传入指针和传入引用指针的区别"
2023-06-22 13:27:51 深夜i     --     --
C++ 传入指针 引用指针 区别

C++是一种便于编写高性能应用程序的语言,具有高效的内存管理能力。其中,传入指针和传入引用指针是常用的参数传递方式。在使用时需要了解传入指针和传入引用指针的区别。

传入指针是将参数的地址作为参数传递给函数。函数内部可以通过指针来访问参数的值和地址。传入指针通常用于函数需要修改传入参数的值的情况。在函数内部修改指针所指向的内存空间的值,将影响到传入参数的值。

例如:


void modify(int* p) {

  *p = 10;

}

int main() {

  int a = 5;

  

  modify(&a);

  

  std::cout << a << std::endl; // 输出10

  return 0;

}

传入引用指针是将指针的引用作为参数传递给函数。函数内部可以通过引用指针来访问参数的值和地址。传入引用指针通常用于函数需要在传入对象上执行其他操作的情况。在函数内部修改引用指针所指向的内存空间的值,也将影响到传入参数的值。

例如:


void modify(int*& p) {

  p = new int(10);

}

int main() {

  int* a = new int(5);

  

  modify(a);

  

  std::cout << *a << std::endl; // 输出10

  

  delete a;

  return 0;

}

可以看出,传入指针和传入引用指针的区别在于函数内部对于指针指向内存空间的修改是否会影响传入参数的值。如果希望在函数内部修改传入参数的值,可以使用传入指针的方式;如果希望在函数内部对传入参数执行其他操作,并不修改其值,则可以使用传入引用指针的方式。

需要注意的是,在使用传入指针和传入引用指针的过程中,一定要确保指针不为NULL,否则会导致程序崩溃。同时,在传递指针或引用指针时也要注意内存泄露的问题,及时释放指针所指向的内存空间。

  
  

评论区

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