Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有人能帮我理解吗?国际*&;公共关系_C++_Variables_Pointers - Fatal编程技术网

C++ 有人能帮我理解吗?国际*&;公共关系

C++ 有人能帮我理解吗?国际*&;公共关系,c++,variables,pointers,C++,Variables,Pointers,我在期末考试中发现: int a = 564; int* pa = &a; int *& pr = pa; cout << *pr; inta=564; int*pa=&a; int*&pr=pa; cout第三行定义了一个指针引用(或者一个指针引用,如果你愿意的话)。将其分配给指针会使pr实际上成为pa的别名,在计算时,它指向pa指向的位置,即a 在变量声明中,*和&没有运算符的含义,因此优先级在这里没有意义 第三行创建指向int的指针的引用(读:别名)。如果将p

我在期末考试中发现:

int a = 564;
int* pa = &a;
int *& pr = pa;
cout << *pr;
inta=564;
int*pa=&a;
int*&pr=pa;

cout第三行定义了一个指针引用(或者一个指针引用,如果你愿意的话)。将其分配给指针会使
pr
实际上成为
pa
的别名,在计算时,它指向
pa
指向的位置,即
a


在变量声明中,
*
&
没有运算符的含义,因此优先级在这里没有意义

第三行创建指向
int
的指针的引用(读:别名)。如果将
pr
设置为0,
pa
也将等于0(反之亦然)。

它是指针的引用。在C中,可以将其表示为指向指针的指针

你可以这样写:

// C++ style
void update_my_ptr(int*& ptr) { ptr = new int[1024]; }

// C style
void update_my_ptr_c(int **ptr) { *ptr = malloc(1024 * sizeof(int)); }

int main()
{
   int *ptr;
   update_my_ptr(ptr);
   // Here ptr is allocated!

}

有趣。我在C中使用了指针到指针,所以这个类比对于理解语法非常有用。非常感谢。