所以我有以下的(很简单)的代码:正在打印什么? C++指针到一个整数
int* pInt = new int(32);
std::cout<< pInt << std::endl; //statement A
std::cout<< *pInt << std::endl; //statement B
std::cout << &pInt << std::endl; //statement C
所以这里就是我认为我做(我已经了解到,在C++中,我很少会做什么,我想我做的):
- 创建一个指向整数,把它品脱
- statementA打印值“32”的
- statementB打印整数值的地址正在被我的指针指向(这是因为我对指针进行了引用,因此使我可以访问它指向的内容)。
- statementC打印指针本身的地址(不是整数值'32'的地址)。
这一切是否正确?
如果变量被定义为int *值= 32;你会是对的。然而,在构造函数中包含常量使其成为一个对象。如果你这样做,那么该变量将被优化为一个const int *。 – monksy 2011-05-12 19:13:53
你是什么意思“使它成为一个对象”? – 2011-05-12 19:18:57
这是一个非常微妙的区别,但为了全面理解,有必要指出。我认为正确的措辞是“2. statementA打印包含值”32“的”int“的地址。 – 2011-05-12 19:24:22