这是在c++中声明数组(并为它们分配内存)的两种可能方法之一。
1. int a[3];
2. int *b = new int[3];
我想了解c++如何区别对待这两个不同的数组。
a. 在两种情况下,我都可以使用以下语法访问数组:a[1]
和 b[1]
b. 当我尝试输出 cout<< a
和 cout<< b
时,它们都打印各自数组第一个元素的地址。
在我看来,似乎a和b都被视为指向数组第一个元素的指针。
c. 但奇怪的是,当我尝试执行 cout << sizeof(a)
和 sizeof(b)
时,它们分别打印出不同的值 - 4 和 12。
我不明白为什么在 sizeof(b)
的情况下,会打印整个数组的大小。