指针基本:一个简单的查询

时间:2015-10-28 21:32:43

标签: c++ pointers

我是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

2 个答案:

答案 0 :(得分:2)

正确。

输出1是指针的值,它是指向的地址。

输出2是“取消引用”指针,这意味着它是输出1中包含的值(指针指向的位置)。

输出3是存储指针(包含输出1的值)的位置。

答案 1 :(得分:2)

你完全正确:

  • v是一个变量,因此&vv存储在内存中的地址;
  • ptr也是一个变量,因此&ptrptr存储在内存中的地址。

在您的示例中,因为这些变量一个接一个地存储(在本地堆栈上),所以它们的地址相距仅4个字节。