0

可能还有其他例子,但这是我刚刚遇到的例子。

#include <iostream>
using namespace std;

class Student
{
  public:
    int x; 
};

int main()
{
  Student rts;
  Student* heap = new Student;

  cout << rts.x   << endl; // prints out random integer
  cout << heap->x << endl; // prints out 0
}

这背后有什么好的理由或逻辑可以理解吗?

4

2 回答 2

1

在这种情况下,我认为堆已经在分配的内存中归零只是巧合。

您可以在这个类似问题的答案中阅读更多内容

于 2013-06-28T13:02:49.563 回答
0

始终将您的变量初始化为有意义的东西。否则它允许随机取任何值。

class Student {
public:
    int x;
Student(): x(0) {}
};
于 2013-06-28T13:00:35.707 回答