间接实例化指针

Instantiate a pointer indirectly

本文关键字:指针 实例化      更新时间:2023-10-16

我有这样的东西:

int* a = NULL;
int* b = *a;
b = new int(5);
std::cout << *a;
std::cout << *b;

我想从b实例化a,因此a值为 5。这可能吗?

编辑:

实际代码是这样的 -

int* a = null; //Global variable
int* b = null; //Global variable
int* returnInt(int position)
{
    switch(position)
    {
      case 0:
         return a;
      case 1:
         return b;
     }
}
some other function -
int* c = returnInt(0); // Get Global a
if (c == null)
    c = new int(5);

如果可能的话,我想以这种方式实例化全局变量。

int* a = NULL;
int* b = *a; //here you dereference a NULL pointer, undefined behavior.

你需要

int* b = new int(5);
int*& a = b; //a is a reference to pointer to int, it is a synonym of b
std::cout << *a;
std::cout << *b;

或者,a可以是对int的引用,也可以是*b的同义词

int* b = new int(5);
int& a = *b; //a is a reference to int, it is a synonym of `*b`
std::cout << a;  //prints 5
std::cout << *b; //prints 5
a = 4;
std::cout << a;  //prints 4
std::cout << *b; //prints 4

详情请查阅一本好C++书。

你需要一个参考:

int* b = NULL;
int*& a = b;

ab的任何更改都将影响另一个。

相关文章: