黑马程序员技术交流社区
标题: 这是一个经典面试题 [打印本页]
作者: 杨忠磊 时间: 2015-10-28 22:30
标题: 这是一个经典面试题
这是 //经典面试题 int a[]={1,2,3,4,5};
int *p=(int *)(&a+1);
printf("%d,%d\n",*(a+1),*(p-1));
/*自我判断
1.首先打印的是2
2.首先打印的是5
重点就在于*(p-1),定义的时候(&a+1)运算的是整个数组的运算地址,然后p又被定义为整形int
所以你明白了吗
作者: xiaobei 时间: 2015-10-28 22:45
这个是2对吗
作者: 杨忠磊 时间: 2015-10-29 23:25
*(a+1)这个是2
作者: jazzforlove 时间: 2015-10-29 23:45
明白了,分析了不错!
作者: aidan 时间: 2015-10-29 23:53
学习了~
作者: 杨忠磊 时间: 2015-10-29 23:57
谢谢,有时间交流
作者: 张水 时间: 2015-10-29 23:59
对的 就是2 和5 主要的在于是整个数组地址的移动 +1!!!
作者: xiaobei 时间: 2015-10-30 20:19
嘿嘿,谢谢啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |