【发布时间】:2016-01-07 11:56:53
【问题描述】:
我想知道是否有其他方法可以为指针分配其指向的值的地址。例如,有通常的方式:
int a = 10;
int *ptr;
ptr = &a;
但在某些地方我看到它声明为:
int *ptr = &a;
这两种方式是否等效?我有点困惑,因为我一直认为 *ptr 给出了 a 的 value,而不是地址。谁能解释一下?谢谢。
【问题讨论】:
-
写
int *ptr;时声明一个指针。编写 *ptr 时,您分配 à 值。它是改变 * 运算符含义的声明 -
你也可以写
int a = 10, *ptr = &a;:) 它们是一样的 -
第一个和第二个例子不一样,但结果是一样的。 1)第一个声明
int *ptr;,然后进行分配ptr = &a;2)第二个:int *ptr = &a;这里声明和初始化正在发生。