我正在学习C ++语言。我无法弄清楚有两个概念:
有人可以帮忙吗?
问题的原始标题和关于学习的主张说问题是关于C,而不是C ++。但问题显然是关于C ++,而不是C,因为每个问题中的两个项目中的一个在C中不作为相关概念存在。
答案 0 :(得分:13)
C不是C ++。
new
是如何在C ++中分配内存和调用构造函数的。 malloc
只是在C和C ++中分配内存。
指针可以为NULL - 也就是指向定义的无效位置。引用(在C中不存在)将始终引用某些内容 - 它不能合法地引用无效位置。
答案 1 :(得分:3)
我假设您在询问C ++,而不仅仅是C。
malloc()
是最常见的内存分配函数;它至少分配用户请求的字节数。 new
是C ++独有的,是一个运算符而不是函数调用;它在分配内存后调用类的构造函数。
指针是存储内存地址的变量。 引用是C ++独有的;它是一个抽象,基本上看起来变量已被重命名。
答案 2 :(得分:0)
引用允许您将实际变量而不是它的副本传递给函数,以便可以修改它而不会出现指针可能出现的问题。