他的程序打印出20(假设4字节整数)。这是数组的大小。
另一方面,
int指针ptr =排列;cout << sizeof(PTR);
prints 4。 这是 指针的 大小 。
你访问数组的指针的时候,你访问它一点有限的方式,因为你失去的大小和原始数组的类型信息。这是一个痛苦的(因为它意味着你必须存储在一个单独的变量数组的大小,)但的实际后果的程度。
请注意,动态分配的数组:
int * pnarray = new int [ 5 ]
新的操作符返回一个指向数组的指针,这就是你所有的工作。你从来没有获得实际的阵列对象。
在功能上,你如何访问数组项,有一个实际的阵列之间的访问和访问数组的元素通过指针没有真正的区别。
所以技术上来说,它是正确的,数组和指针不相同。指针给你访问数组的信息的有限子集。实际上,它通常不值得担心的。
你的网站是美妙的,它提供的感谢。我在编辑一些例子提供给你看到的输出会发生什么,我注意到了一些我无法解释。当我替以下到你的最后一个例子(Mollie /元音)我得到的产量的3,这是有意义的。
const int narraysize = 14;
字符szname [ narraysize ] =“懒brownfox”;
但当我改变代码下面,结果就变成了4,我不明白。这是因为如果程序最后一空格字符作为一个元音。您能解释一下这是什么意思吗?
const int narraysize = 15;
字符szname [ narraysize ] =“懒惰的棕色狐狸”;
顺便说一句,我使用Cygwin用c++和GNU编译器。