看过这个,你可能更了解指针一点(2)-网络通信牛翰社区-人工智能-牛翰网

看过这个,你可能更了解指针一点(2)

先来看下图
图片[1]-看过这个,你可能更了解指针一点(2)-网络通信牛翰社区-人工智能-牛翰网
你认为以下的打印的结果是什么?

接下来,我们先来分析

****在1中

arr单独放在sizeof内表示整个数组,
因此计算的为整个数组大小。即6乘1得到6
1的答案为6

****在2中

arr没有被单独放在sizeof中,
arr此时表示数组首元素的地址,+0则表示计算的是第一个元素地址的大小,
其结果在32位中为4,在64位中为8
2的答案为4或8

****在3中

arr依旧没有被单独放入sizeof中,表示为首元素地址.
首元素地址被解引用得到该元素”a”
由于a为char类型,故大小为1
3的答案为1

****4中

arr[1]与*(arr+1)等效,表示为数组arr中的第二个元素,大小为1
4的答案为1

****5中

&与arr结合这里的arr表示整个数组,则&arr表示的是整个数组的地址
5的答案为4或8

****6中

&arr+1表示跳过了一个数组大小后到达的地址。
地址大小为4或8
6的答案为4或8

****7中

&arr[0]表示首元素的地址,+1表示跳过一个元素大小即来到了arr[1]的位置,
求&arr[1]的大小,该地址大小为4或8。
7的答案为4或8

****最后附上64位的运算结果
图片[2]-看过这个,你可能更了解指针一点(2)-网络通信牛翰社区-人工智能-牛翰网
谢谢看到这里

请登录后发表评论

    没有回复内容