August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
我们使用运算符new来请求系统从自由空间中分配(allocate)内存:
·运算符new返回一个指向分配的内存的指针。
·指针的值是分配的内存的首字节的地址。
·一个指针指向一个特定类型的对象。
·一个指针并不知道它指向多少个元素。
运算符new可以为单个元素分配内存,也可为元素序列(数组)分配内存。例如:
注意,分配的对象数量可以通过一个变量给出。这很重要,因为这样我们就可以在运行时选择分配多少个对象。如果n等于2,我们得到:
指向不同类型变量的指针是不同类型。例如:
为什么不可以?毕竟,我们可以将一个int赋给一个double,以及将一个double赋给一个int。原因在于[]运算符。它依赖于元素类型的大小来计算出到哪里找到一个元素。例如,qi[2]在内存中与qi[0]相距2个int大小,qd[2]在内存中与qd[0]有2个double大小的距离。如果一个int与一个double的大小不同(在很多计算机中确实是这样),那么如果允许将qi指向分配给qd的内存,我们将会得到一些很奇怪的结果。 ...