【发布时间】:2014-01-04 07:28:27
【问题描述】:
我从游戏开发的角度学习 C++,我在 C# 中与游戏无关的长期开发,但我很难掌握指针和取消引用的概念/使用。我已经将当前课程教科书中的这两章读了 3 遍,甚至在谷歌上搜索了一些与它们相关的不同页面,但似乎并没有很好地结合在一起。
我想我得到了这个部分:
#include <iostream>
int main()
{
int myValue = 5;
int* myPointer = nullptr;
std::cout << "My value: " << myValue << std::endl; // Returns value of 5.
std::cout << "My Pointer: " << &myValue << std::endl; // Returns some hex address.
myPointer = &myValue; // This would set it to the address of memory.
*myPointer = 10; // Essentially sets myValue to 10.
std::cout << "My value: " << myValue << std::endl; // Returns value of 10.
std::cout << "My Pointer: " << &myValue << std::endl; // Returns same hex address.
}
我想我没有得到的是,为什么?为什么不直接说 myValue = 5,然后 myValue = 10?通过为另一个变量或指针添加的层的目的是什么?任何有用的输入、现实生活中的用途或一些有助于理解这一点的阅读链接将不胜感激!
【问题讨论】:
-
在您发布的代码的非常狭窄的情况下,它没有任何作用;但是这个例子试图向你解释它是如何工作的,而不是你如何使用它来做有趣的事情。尝试添加另一个函数并使用代码来尝试弄清楚你可以做什么。
标签: c++ pointers dereference