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中使用了指针到指针,所以这个类比对于理解语法非常有用。非常感谢。