C ++语言中的两个问题

时间:2011-04-28 15:33:40

标签: c++ pointers

我正在学习C ++语言。我无法弄清楚有两个概念:

  1. new和malloc有什么区别?
  2. 指针与参考有什么区别?
  3. 有人可以帮忙吗?


    问题的原始标题和关于学习的主张说问题是关于C,而不是C ++。但问题显然是关于C ++,而不是C,因为每个问题中的两个项目中的一个在C中不作为相关概念存在。

3 个答案:

答案 0 :(得分:13)

C不是C ++。

new是如何在C ++中分配内存调用构造函数的。 malloc只是在C和C ++中分配内存。

指针可以为NULL - 也就是指向定义的无效位置。引用(在C中不存在)将始终引用某些内容 - 它不能合法地引用无效位置。

答案 1 :(得分:3)

我假设您在询问C ++,而不仅仅是C。

  1. malloc()是最常见的内存分配函数;它至少分配用户请求的字节数。 new是C ++独有的,是一个运算符而不是函数调用;它在分配内存后调用类的构造函数。

  2. 指针是存储内存地址的变量。 引用是C ++独有的;它是一个抽象,基本上看起来变量已被重命名。

答案 2 :(得分:0)

引用允许您将实际变量而不是它的副本传递给函数,以便可以修改它而不会出现指针可能出现的问题。