我们先来看下图
![图片[1]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/8251416394597852130.png)
如果是你,你会认为每一行的输出结果是什么?
接下来我们开始分析
****在1中
![图片[2]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/3216831501721768708.png)
****我们知道1中的a被单独使用在数组中,
所以此时的a表示一整个数组。
而int 是其数组储存的类型,一个int 占4个字节,所以是4乘4=16。
1的答案为16。
**** 在2中
![图片[3]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/5751486993023982768.png)
****a+0则表示首元素地址,则此时sizeof计算的是a[0]地址的大小。
在32位一个地址的大小为4个字节,而在64位中是8个字节。
2的答案为4或8。
**在3中
![图片[4]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/2762718104494206531.png)
a不是单独出现,所以这里表示的是a数组的首元素的地址,
而表示对其解引用,则a表示的是a[0]这个元素本身。
a的第一个元素为1,则求1的大小,因为1是int 类型,则输出结果为4
3的答案为4。
****在4中
![图片[5]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/8807727949451238911.png)
与上面的2类似,a表示首元素的地址,+1则表示跳过一个元素地址的大小,
则a+1表示的是a[1]这个元素的地址的大小
所以4的答案为4或8。(在32位中是4,在64位中是8)
****在5中
![图片[6]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/1073498088590971971.png)
所以其实a[1]是指2这个元素,则其大小为4(int类型)
5的答案为4。
****在6中
![图片[7]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/7051818199388261240.png)
看到这里,你也许会认为结果为4乘4或者4乘8,
但是&a虽然表达的是数组的地址,
但是它也是地址,所以答案为4或8。
6的答案为4或8。
***在7中
由于a跟在&的后面,所以a在这里表示的是整个数组,
而&a则是取了整个数组的地址。则是对a这个数组的地址解引用,得到的是数组中的每一项。
1、2、3、4.一共有四个元素,为int型所以是,4乘4=16个字节
7的答案为16。
****在8中
![图片[8]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/8179641217604589580.png)
&a已经分析过了是表示a的地址,
而&a+1表示的则是跳过了a这个数组大小后到达的地址,即上图所示的位置。
当然了,即使是这样,在a之后的地址依旧是地址,
地址只由32位或64位决定大小,即答案为4或8.
8的答案为4或8。
****在9中
![图片[9]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/6699238864147166142.png)
&a[0]表示取首元素的地址,答案理所应当是4或8了
9的答案为4或8。
****在10中
a[0]与a表示的含义相同,都是首元素,
因此&a[0]+1与&a+1实际上是等效的,参照上一题,这题的答案依旧是4或8
10的答案为4或8。
最后,附上64位运行的结果。
![图片[10]-看过这个,你可能更了解指针一点-网络通信牛翰社区-人工智能-牛翰网](https://niuimg.niucores.com/wp-content/uploads/2024/11/3812115721025133188.png)
很感谢看到了这里,相信现在你对指针的理解更上一层楼了。









没有回复内容