目录
一、数组名的理解
通过学习,我们知道:数组名和数组首元素的地址打印出来的结果一模一样,数组名就是数组首元素的地址。
输出的结果是40,如果arr是数组首元素的地址,那么输出应该是4或者8才对。
那么,上述代码应该如何解释呢?
其实数组名就是数组首元素的地址,但是有两个例外
- sizeof(数组名),sizeof中单独放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。
- &数组名,这里的数组名表示的是整个数组,取出的是整个数组的地址(整个数组的地址和数组首元素的地址有区别)
除此之外,任何地方使用数组名,数组名都表示首元素的地址。
这时,我们打印arr和&arr的地址,我们会发现,打印的结果相同。那么arr和&arr有什么区别呢?
我们可以尝试分别打印arr和arr+1、&arr和&arr+1的地址,结果如下
1 arr = 0077F824
2 arr+1 = 0077F824
3 &arr = 0077F824
4 &arr+1= 0077