C语言对数组取地址

发布时间:2017-1-17 8:42:39 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"C语言对数组取地址 ",主要涉及到C语言对数组取地址 方面的内容,对于C语言对数组取地址 感兴趣的同学可以参考一下。

#include <stdio.h>
main()
{
int a[5] = {1,2,3,4,5};
printf("a=%p\n" , a);
printf("a=%p\n" , &a);
printf("a=%p\n" , &a+1);
int *ptr = (int*)(&a+1);
printf("%d %d\n" , *(a+1), *(ptr-1));
}

大家先看如上代码。然后猜测打印出a的内存地址和&a的内存地址是否一样?直觉上&a应该是对a这个指向a[0]指针变量取地址,所以猜测结果是不一样的。

但是,看输出结果。

a=0x7fff8178af30
&a=0x7fff8178af30
&a+1=0x7fff8178af44
2 5

答案是一样,这个是为什么呢?

a

指向a数组a[0]元素的指针

上一篇:Unsupported major.minor version 52.0
下一篇:Android Studio + gradle多渠道打包

相关文章

相关评论