黑马程序员技术交流社区

标题: 这是一个经典面试题 [打印本页]

作者: 杨忠磊    时间: 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
xiaobei 发表于 2015-10-28 22:45
这个是2对吗

*(a+1)这个是2
作者: jazzforlove    时间: 2015-10-29 23:45
明白了,分析了不错!
作者: aidan    时间: 2015-10-29 23:53
学习了~
作者: 杨忠磊    时间: 2015-10-29 23:57
aidan 发表于 2015-10-29 23:53
学习了~

谢谢,有时间交流
作者: 张水    时间: 2015-10-29 23:59
对的 就是2 和5  主要的在于是整个数组地址的移动  +1!!!
作者: xiaobei    时间: 2015-10-30 20:19
嘿嘿,谢谢啦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2