指针变量可以持有另一个指针变量的地址吗?例如:int a;
int *ptr,*ptr1;
ptr=&a;
ptr1=&ptr;
是可以的。
当然可以,指向指针的指针。
int i;
int *pi = &i;
int **ppi = π
指向指针的变量并不特别奇怪。它像其他变量一样,包含一个像其他变量一样的变量地址。只需要设置正确的类型,让编译器知道如何处理它们。
ptr
和ptr
在您的示例中具有相同的名称,因此存在类型不匹配(int **
vs int ***
)使代码无效。 - R.. GitHub STOP HELPING ICEint *ptr,*ptr1;
中,ptr
和ptr1
都有"指向int
的指针"类型,只能指向int
,而不是指针。如果声明int *ptr,**ptr1;
,那么ptr1
就有了"指向int *
的指针"类型,因此可以指向ptr
。这是一个示例,展示了发生了什么
int a = 13;
int *ptr,
int **ptr1; // ** means pointer to pointer
ptr = &a;
ptr1 = &ptr;
cout << a; //value of a
cout << *ptr; //ptr points to a, *ptr is value of a
cout << **ptr1; //same as above
cout << &ptr; //prints out the address of ptr
cout << *ptr1; //same as above
对于 int ***ptr
,int ****ptr
,它们的工作方式相同。
这里有两个答案,它们都是肯定的。
两个指针可以指向同一个位置。
int b, *p1=&b, *p2=&b;
*p1 = 123;
*p2; // equals 123
**q; // equals 2
*q = &y;
**q; // equals 3
**q = 4;
y; // equals 4
是的,请看下面的代码。我希望它能满足您的需求。
int a = 4;
int *ptr = &a;
int *ptr1 = (int*)&ptr;
cout << **(int**)ptr1;
这里的ptr1是单指针,但表现为双指针
int **ptr
的意思是“指向指针的指针,它可以存储 int 类型的地址”。 - user166390void
指针,它们可以安全地保存任何指针。 - R.. GitHub STOP HELPING ICE