如果您要声明这样的指示:
int n, *p1, *p2;
double *p3;
我们能否确定p1 = p2?
我的理解是,所有这些代码告诉我们的是* p1和* p2是指向int的指针。 p1和p2将是整数。
编辑: 所以这是来自c ++的书,问题是:
将以下陈述标记为True(正确)或False(不正确):
(a)p1 = p2;
答案 0 :(得分:3)
p1
和p2
是指向整数的指针。
在代码中使用时,*p1
和*p2
将获得p1和p2指向的值。您可以使用p1 == p2
测试指针是否相同,并使用*p1 == *p2
查看它们指向的值是否相同。
答案 1 :(得分:0)
是的,只需写p1 == p2
来确定p1 = p2。
p1
和p2
不会成为整体。它们是指针虽然可能在某些环境中实现为整数。
答案 2 :(得分:0)
p1
和p2
不是字面上的整数。它们指向/包含内存中可能包含整数的位置地址。
答案 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;