C++程序打印地址而不是值是因为在C++中,指针变量存储的是内存地址,而不是实际的值。当我们使用cout语句打印指针变量时,默认情况下会打印出指针变量所指向的内存地址。
要打印指针变量所指向的值,我们需要使用解引用操作符*来获取指针指向的实际值。下面是一个示例代码:
#include <iostream>
int main() {
int num = 10;
int* ptr = # // 指针变量ptr存储了num的地址
std::cout << "指针变量ptr的值(地址): " << ptr << std::endl;
std::cout << "指针变量ptr所指向的值: " << *ptr << std::endl; // 解引用操作符获取指针指向的值
return 0;
}
输出结果为:
指针变量ptr的值(地址): 0x7ffeeb3b6a4c
指针变量ptr所指向的值: 10
在上述示例中,我们定义了一个整型变量num
,并使用&
运算符获取了num
的地址,并将其赋值给指针变量ptr
。然后,我们使用cout
语句分别打印了指针变量ptr
的值(即地址)和指针变量ptr
所指向的值(通过解引用操作符*
获取)。
需要注意的是,打印指针变量时,输出的是十六进制的地址值。如果想要以十进制形式打印地址,可以使用reinterpret_cast
进行类型转换,如下所示:
std::cout << "指针变量ptr的值(地址): " << reinterpret_cast<long long>(ptr) << std::endl;
希望这个答案能够满足您的需求。如果您需要了解更多关于C++编程或其他云计算相关的知识,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云