指针声明

时间:2016-02-26 00:52:41

标签: c++ pointers declaration

如果您要声明这样的指示:

int n, *p1, *p2;
double *p3;

我们能否确定p1 = p2?

我的理解是,所有这些代码告诉我们的是* p1和* p2是指向int的指针。 p1和p2将是整数。

编辑: 所以这是来自c ++的书,问题是:

将以下陈述标记为True(正确)或False(不正确):

(a)p1 = p2;

5 个答案:

答案 0 :(得分:3)

p1p2是指向整数的指针。 在代码中使用时,*p1*p2将获得p1和p2指向的值。您可以使用p1 == p2测试指针是否相同,并使用*p1 == *p2查看它们指向的值是否相同。

答案 1 :(得分:0)

是的,只需写p1 == p2来确定p1 = p2。

p1p2不会成为整体。它们是指针虽然可能在某些环境中实现为整数

答案 2 :(得分:0)

p1p2不是字面上的整数。它们指向/包含内存中可能包含整数的位置地址。

答案 3 :(得分:0)

如果p1 == p2那么* p1 == * p2

也是如此

答案 4 :(得分:0)

你已经反过来了。

int *p1, *p2;

p1和p2是指针 和 * p1和* p2将是整数

现在说

*p1 = 35;
*p2 = 35;

存储器位置p1和p2处的值相等。 p1不一定等于p2。

另一方面

int *p1 = 0, *p2=0;
int a = 75;
p1 = &a;
p2 = p1;

现在p1和p2都包含a的地址,所以p1等于p2;