【时时三省】(C语言基础)指针进阶6

山不在高,有仙则名。水不在深,有龙则灵。

                         ----CSDN 时时三省

例题1:

【时时三省】(C语言基础)指针进阶6_第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

 

 

 

你可能感兴趣的:(【理论+经验】c语言入门,c语言基础知识点,c语言)