山不在高,有仙则名。水不在深,有龙则灵。
----CSDN 时时三省
例题1:
sizeof(数组名)-数组名表示整个数组的-计算的是整个数组的大小
&数组名-数组名表示整个数组,取出的是整个数组的地址
除此之外,所有的数组名都是数组首元素的地址
第一个a 他有四个元素 每个元素是四个字节 算出来就是16 他就是打印16
第二个a+0 这里的a表示的就不是整个数组了所以这里的a表示的是首元素的地址就是1的地址 1的地址加0等于没加 还是1的地址 他的结果就是4个字节或者8个字节 看平台的情况 我这里他就是打印8
第三个*a *a是数组的第一个地址,所以他就是计算的第一个元素的大小 它打印的就是4
第四个a+1 a表示数组第一个元素的地址 所以a+1就是第2个元素的地址 它计算的地址大小 结果就是4或者8 64位平台就是打印8
第五个a[1]a[1]就是计算它的第二个元素的大小 结果就是4
只要有&a 符号都表示地址,大小和操作系统有关
第六个&a 它虽然是数组的地址 但也是地址 他计算的是第一个地址的大小 打印就是打印4或者8
第七个*&a 解引用相当于找到整个数组 所以它打印的就是16
第八个&a+1 &a就是第一个数组的地址 +1就等于跳过整个数组以后 下一个空间的地址 所以打印出来他地址是4或者8 是数组后面的空间的地址
第九个&a[0] a[0]是第一个元素 &a[0]取出来第一个元素的地址 这个打印出来的结果就是4或者8
第十个&a[0]+1 这个跟上面那个一样 就是加一算的第二个元素的地址 打印的结果就是4或者8