C++ 指针声明
如果您要声明一些类似这样的指针:C++ 指针声明,c++,pointers,declaration,C++,Pointers,Declaration,如果您要声明一些类似这样的指针: int n, *p1, *p2; double *p3; 我们能确定p1=p2吗 我的理解是,所有这些代码告诉我们,*p1和*p2是指向int的指针,而p1和p2将是int 编辑: 这是一本C++的书,问题是:< /P> 将以下陈述标记为真(正确)或假(不正确): (a) p1=p2 是的,只要写p1==p2来确定p1=p2 p1和p2将不是整数。它们是指针,尽管在某些环境中它可能被实现为整数。是的,只需写入p1==p2即可确定p1=p2 p1和p2将不是整数
int n, *p1, *p2;
double *p3;
我们能确定p1=p2吗
我的理解是,所有这些代码告诉我们,*p1和*p2是指向int的指针,而p1和p2将是int
编辑:
这是一本C++的书,问题是:< /P>
将以下陈述标记为真(正确)或假(不正确):
(a) p1=p2 是的,只要写
p1==p2
来确定p1=p2
p1
和p2
将不是整数。它们是指针,尽管在某些环境中它可能被实现为整数。是的,只需写入p1==p2
即可确定p1=p2
p1
和p2
将不是整数。它们是指针,尽管在某些环境中可以作为整数实现。p1
和p2
并不是真正意义上的整数。它们指向/包含内存中可能包含整数的位置地址。p1
和p2
不是真正的整数。它们指向/包含内存中可能包含整数的位置地址。p1
和p2
是指向整数的指针。
*p1
和*p2
在代码中使用时,将获得p1和p2指向的值。您可以使用p1==p2
测试指针是否相同,并使用*p1==p2
测试指针指向的值是否相同p1
和p2
是指向int的指针。
*p1
和*p2
在代码中使用时,将获得p1和p2指向的值。您可以使用p1==p2
测试指针是否相同,并使用*p1==p2
测试指针指向的值是否相同。如果p1==p2,*p1===p2也是正确的,如果p1==p2,那么同样正确的是,*p1==p2您得到了相反的结果
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 你的情况正好相反
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 p1和p2不是int,它们的内存与int相同,但它们拥有一个可以存储int的地址。p1=p2始终为真。您确定上面说的是p1=p2
(与p1==p2
)相反吗?如果是这样,那么你就不是在“确定”p1=p2的任何东西。我假设他们使用“=”代替“等于”,而不是赋值运算符。除非初始化了p1
和p2
,否则无法判断p1是否等于p2
。p1和p2不是整数,它们与int具有相同的内存,但它们拥有一个可以存储int的地址。p1=p2始终为真。您确定它说的是p1=p2
(与p1==p2
)相反吗?如果是这样,那么你就不是在“确定”p1=p2的任何东西。我假设他们使用“=”代替“equals”,而不是赋值运算符。除非初始化了p1
和p2
,否则无法判断p1是否等于p2。第二条语句可能是未定义的行为(例如,如果两者都是空指针)否,它仍然是真的。未定义的行为既不是真的也不是假的第二个语句可能是未定义的行为(例如,如果两者都是空指针)不,它仍然是真的。未定义的行为既不是真的也不是假的