C ++中声明变量的类型

时间:2011-07-27 18:26:01

标签: c++

如果我有一个名为student的结构 那么这些

之间的区别是什么
Student& refFriend;
Student* ptrFriend;
Student valFriend;

5 个答案:

答案 0 :(得分:4)

  • 第一个是引用类型,您需要使用Student实例对其进行初始化。一旦引用实例,就无法更改它以引用另一个实例。它是固定的。

  • 第二个是指向Student对象的指针。您可以将指针更改为指向另一个Student对象,您可以根据需要多次执行此操作。如果使用new创建指向Student对象的指针,则必须使用delete在完成对象后取消分配内存,否则程序将泄漏存储器中。

  • 第三个是自动对象。当对象超出范围时,该对象将被销毁。

答案 1 :(得分:3)

这是一个非常基本的问题。我建议找一个关于C ++的入门教程,阅读有关变量,指针(学生*)和参考文献(学生&)。

答案 2 :(得分:2)

<强>学生&安培; refFriend;

这称为对象Student的引用。

学生* ptrFriend;

这称为指向对象Student的指针。

学生valFriend;

这是使用变量名Student声明对象valFriend。它有时被称为堆栈对象。

答案 3 :(得分:1)

退房: What are the differences between a pointer variable and a reference variable in C++?

深入了解指针和引用之间的差异。

答案 4 :(得分:0)

Student& refFriend; //reference pointer to Student. constant pointer, assigned only once
Student* ptrFriend; //pointer to Student. this is a dynamic pointer. can be reasigned
Student valFriend;  //instance of the Student class