C++打印指针的内容而不是地址值
时间: 2023-12-17 19:03:59 浏览: 93
要打印指针所指向的内容而不是地址值,需要使用 * 运算符。下面是一个示例代码:
```c++
#include <iostream>
int main() {
int x = 42;
int *p = &x;
std::cout << *p << std::endl; // 打印指针 p 指向的内存地址中的值
return 0;
}
```
在上面的代码中,我们先定义了一个整数变量 x,并且通过 & 运算符获取了它在内存中的地址,将其赋值给指针 p。然后,通过 *p 来获取指针 p 指向的内存地址中的值,即 x 的值。最后,使用 std::cout 来打印这个值。
相关问题
c++打印指针本身的值
要打印指针本身的值,可以使用`printf`函数配合格式化字符串`%p`,如下所示:
```c++
#include <cstdio>
int main() {
int* ptr = nullptr;
printf("Pointer value: %p\n", (void*)ptr);
return 0;
}
```
这里将指针强制转换成`void*`类型,是为了让编译器正确地解释它。如果不这样做,编译器可能会出现警告。
c++打印函数指针的值
要打印函数指针的值,可以使用以下代码:
```cpp
#include <iostream>
using namespace std;
void func() {
cout << "Hello, World!" << endl;
}
int main() {
void (*p)() = func; // 定义并初始化函数指针
cout << "函数指针的值是:" << p << endl;
return 0;
}
```
其中,`void (*p)()` 表示定义一个返回值为空,参数为空的函数指针,`p` 初始化为 `func` 函数的地址。使用 `cout` 打印函数指针的值时,输出的是函数的地址,即函数在内存中的位置。