千里之行始于足下|2021-11-09 指针和数组经典笔试题(一)——一维数组

【千里之行始于足下|2021-11-09 指针和数组经典笔试题(一)——一维数组】千里之行始于足下|2021-11-09 指针和数组经典笔试题(一)——一维数组
文章图片

千里之行始于足下 题目:计算出程序的运行结果 千里之行始于足下|2021-11-09 指针和数组经典笔试题(一)——一维数组
文章图片

附: 1.首先跟大家介绍下sizeof这个关键字的作用,它实际上是一种操作符,用来求变量所占空间的大小或求类型创建的变量所占空间的大小,单位是字节。
2.通常数组名都是代表数组首元素的地址,但是有两个例外,一个是sizeof(数组名),意思是计算整个数组的大小;另一个是&数组名,取出整个数组的地址。
3.在32位平台下,地址(指针)所占的字节大小是4;在64位平台下,地址(指针)所占的字节大小是8。
思路: 根据上述所附的知识点,我们可以清楚地知道第一个打印出来的是16,因为一个整形是4个字节,数组里面有4个元素,所以整个数组所占的字节空间就是16,实际上我们第7个打印出来的也是16,因为*&a的意思就是取出整个数组的地址,然后再解引用。(&a本质是一个数组指针即是int (*)[4],解引用出来就是拿到4个整形类型的元素)
*a=*(a+0)=a[0],也就是拿到数组首元素,数组首元素是1,1是整形,整形就是4个字节,所以第3和第5个打印出来都是4。
其余打印在32位平台下是4,在64位平台下都是8,时刻记住只要你是地址(指针)那么你所占的内存空间的字节大小就是4或8,指针的类型只是为了在内存中你能访问多少个字节,eg:整形指针能访问4个字节。
答案:这是32位平台下打印出来的,64位平台下打印出来会有所不同 千里之行始于足下|2021-11-09 指针和数组经典笔试题(一)——一维数组
文章图片

千里之行始于足下|2021-11-09 指针和数组经典笔试题(一)——一维数组
文章图片

备注:楼主不才,不喜勿喷,若有错误或需要改进的地方,非常感谢你的指出,我会积极学习采纳。谢谢大家一直以来的支持和鼓励,我会继续努力再接再励创作出更多优质的文章来回报大家的。 千里之行始于足下|2021-11-09 指针和数组经典笔试题(一)——一维数组
文章图片

    推荐阅读