- 第一种:arr这种是表示数组首元素的地址
- 第二种:&arr[0]这种表示的和arr是一样的
- 第三种:&arr这种表示的是整个数组的地址
结果我们可以看到前两个地址是符合预期的,但是第三个为什么也是一样的。不妨地址+1
我们发现前两个符合地址+4(+1*sizeof(int))字节,后面的却是加了40(+数组长度10*sizeof(int))字节,就是直接跳过了这个数组,也说明了&arr表示的是arr数组的地址.
- 综上就是: 他们分别加一后,前两个是直接下个元素的地址,后一个是直接跳过这个数组后一个元素的首地址
- 特例:对于函数里面的取地址,通常是用arr,而这个也表示首元素的地址,但是有种情况不同,表示的是整个数组的地址,是sizeof(arr),如果我们做合理的分析,如果arr表示的是首元素的地址,那么就应该像strlen函数一样有特殊字符进行停止,但是这里没有,int,float类型更不用说有什么特殊的数字来暂停这个函数,因此传入的就是整个数组的地址而并没有对数组进行遍历。