new命令动态分配的问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:56:53
使用new对数组进行分配时,例如int* pointer=new int[5],这个存储地址的指针pointer是不是就是此数组的数组名??因为偶在最后尝试输出pointer[0],发现输出的就是这个数组的第一个元素。这是否意味着数组首元素与这个指针是在同一个位置??
但是指针与被分配的数值不是应该位于内存两个不同的位置吗?

如果被分配的不是数组而是其他类型,是否也会是同样的情况??

希望有大大帮助解答~~谢谢

这个存储地址的指针pointer不是就是此数组的数组名;数组首元素与这个指针不是在内存中同一个位置
指向数组的指针和数组的关系只是一种在内存中的映射关系,指针的位置在哪我们不得而知.
我们可以这样说,指针相当于数组名,我们可能通过指针引用数组,也可以通过数组名引用数组,但是他们不是同一个事物,这就好比:你大名叫王五,小名叫张三,我们叫王五,第三都是叫的你,但是王五和张三是两个不同的名字
可能我说的不清楚,这个比喻可能也比的不当,不是你要重点理解他们的映射关系,那就不难了!~
仅提供个人的理解,作为你的参考!~~~

不好意思我不太懂这个!你可以去这里http://hi.baidu.com/duxiangyang/这个上面有说!

int[5] 就是告诉要分配5个整数类型的空间,返回空间首地址保存到指针变量中。指针是一个变量一般是4个字节,它保存地址。