c ++中的数组赋值

时间:2014-01-02 08:37:09

标签: java c++ arrays pointers

在c ++中,数组的标识符是一个指针,在数组的java标识符中是一个引用变量(实际上是一个指针)。

假设有一个数组ab。如何在java中允许此操作:

a = b; //the reference that 'b' holds will be copied to 'a' so both a and b point to the same array

但在C ++中,相同的操作将被视为无效的分配。

如果ab都是c ++中的指针,为什么b保留的地址不会被复制到a

2 个答案:

答案 0 :(得分:3)

数组不是真正的指针,它们只是降级为指针(指向它们包含的第一个元素。)它们实际上是数据的blob。您无法在C ++中更改数组的位置,因为内存中没有存储指针的位置;它只是结构或堆栈框架的偏移量。

答案 1 :(得分:0)

在C ++中,数组引用是const指针,但在Java中它们既不是指针也不是隐式常量。