c++语言中的两个问题

Two questions in C++ language

本文关键字:两个 问题 语言 c++      更新时间:2023-10-16

我正在学习c++语言。有两个概念我不明白:

  1. new和malloc的区别是什么?
  2. 指针和引用的区别是什么?

有人能帮忙吗?


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

C不是c++。

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

指针可以是NULL——也就是指向定义的无效位置的指针。引用(在C中不存在)总是指向某些东西-它不能合法地指向无效的位置。

我想你问的是c++,而不仅仅是C。

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

  2. 指针是存储内存地址的变量。引用是c++独有的;

引用允许您将实际变量(而不是它的副本)传递给函数,因此可以对其进行修改,而不会出现指针可能引起的问题。