指针基础:一个简单的查询
Pointers Basic : A simple query
我是cpp和学习指针的新手。在练习密码时,我发现了这个。当我这样做&(指针),它给出了另一个内存位置。我想知道这个地址是什么。我假设它是保存ptr的位置。它必须保存在某个地方,尽管它有值变量的内存。
#include<iostream>
using namespace std;
int main()
{
int v =6;
int *ptr;
ptr = &v;
cout << "1: " << ptr << endl;
cout << "2: " << *ptr << endl;
cout << "3: " << &ptr << endl;
return 0;
}
输出:1:0x29cc6c
2:6
3:0x29cc68
正确。
输出1是指针的值,它指向的地址。
输出2是"取消引用"指针,这意味着它是输出1(指针指向的位置)中包含的值。
输出3是指针(包含输出1中的值)的存储位置。
你做得很对:
v
是一个变量,所以&v
是v
存储在存储器中的地址ptr
也是一个变量,因此&ptr
是ptr
存储在存储器中的地址
在您的示例中,因为这些变量一个接一个地存储(在本地堆栈上),所以它们的地址仅相隔4个字节。
相关文章:
- 在c++中用vector填充一个简单的动态数组
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 为什么一个简单的程序不能立即启动
- C++ - 在我尝试制作一个简单的计算器时有一个"uninitialized local variable y used"警告
- 为什么 MSVC C++编译器将一个简单的 Hello World 扩展为 4000 行汇编?
- 我写了一个简单的矢量程序,在其中我得到了以下输出。你能帮我理解它的输出吗?
- 如何使用 c++ 在命令行中创建一个简单的字符控制器?
- 对于 ~95% 写入/5% 读取线程安全的无序列图,有没有一个简单的解决方案?
- 在C++中创建一个简单的数据包路由器,如何跟踪"客户端"?
- 创建一个简单的前向迭代器,该迭代器在循环缓冲区的"end"处自动换行
- 我已经安装了用于c++编程的升华3,但在编写了一个简单的程序后,我遇到了以下错误
- 如何设置一个简单的CGAL+Qt程序
- 如何在一个简单的C++项目中使用Poco库
- 我创建了一个简单的程序,但有些地方不对劲
- Qt的新信号/时隙语法问题 - 连接到一个简单的函数
- 一个简单的 win32 多线程代码.这能行吗?
- 我正在尝试构建一个简单的程序来从 mysql 数据库中读取信息
- 创建一个简单的计算器,添加时遇到问题
- 我正在编写一个简单的客户端套接字应用程序,但在连接后服务器收到一个空缓冲区
- 为什么一个简单的"Hello World"风格的程序不能用Turbo C++编译?