以下哪一项给出了指针p_a所指向的变量的内存地址?
一个。 P_A;
B中。 * P_A;
℃。 &安培; P_A;
d。地址(p_a);
所以我读这本书叫做#34;跳进C ++"这一个测验在一章之后出现了。当我从书中检查出正确的答案时,它表明正确的答案是 C. &安培; P_A; 即可。不会& p_a只给出指针变量p_a的内存地址而不是它指向的变量的内存地址吗?
现在我说这不是正确的答案,但我无法确定。毕竟我还是初学者,所以我还不敢开始质疑书中的答案。我说正确答案是A.告诉我,答案中有错误或者是什么?
答案 0 :(得分:4)
除非我完全误解了这个问题,否则你是对的,这本书是错误的。 p_a
是一个指针,意味着它是它指向的变量的地址。
答案 1 :(得分:4)
p_a
是指向变量的指针。也就是说,它产生该变量的地址。
*p_a
是变量的值。
&p_a
是指针的地址(指针也有内存位置)。
address( p_a )
是一些废话。
因此答案是 A ,而且书籍不正确。 刻录。
答案 2 :(得分:1)
如果这是问题的确切措辞,那么你是对的:答案是答案。
p_a
是指针的值,它是指向*p_a
取消引用指针,将指向的对象赋予&p_a
给出指针的地址,而不是对象address(p_a)
调用一个名为address
的函数,如果存在,则无法知道该函数可能返回的内容。(有一个库函数std::addressof(p_a)
,它提供p_a
的地址,就像&p_a
一样,即使它是一个改变&
含义的邪恶类型但是这里没有关系。)
答案 3 :(得分:0)
指针用于包含其他对象的地址。因此,初始化指针的值是对象的地址。所以正确答案将是标记为A的答案,即p_a。