zoukankan      html  css  js  c++  java
  • 修改作为函数参数的指针

    如何修改作为函数参数的指针?

    下来看一段代码:

    void f(int* p)
    {
      p 
    = (int*)1;
    }

    void main()
    {
      
    int* p = NULL;
      f(p);
    }

    p的值仍然为NULL。

    将f()改为:

    void f(int** p)
    {
      
    *= (int*)1;
    }

    调用时f(&p)即可将p的值改为0x00000001。

    或者:

    void f(int*& p)
    {
      p 
    = (int*)1;
    }

     f(p)。

    如果只能通过g()调用f():

    void f(int** p)
    {
      
    *= (int*)1;
    }

    void g(int* p)
    {
      f( (
    int**)p );
    }

    那么g(&p)即可。

  • 相关阅读:
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
  • 原文地址:https://www.cnblogs.com/burellow/p/2072086.html
Copyright © 2011-2022 走看看