黑马程序员技术交流社区

标题: 为什么? [打印本页]

作者: 飞哥    时间: 2015-7-29 21:31
标题: 为什么?
6.下列程序运行结果正确的是(A )
int a[] = {1, 2, 3, 4, 5};
int *p = (int*)(&a + 1);
printf("%d, %d\n", *(a+1), *(p-1));
A. 2,5      B. 2,1      C. 1,5     D. 1,1
作者: 飞哥    时间: 2015-7-29 22:00
求大神指教
作者: 我的呸    时间: 2015-7-29 22:25
        printf("%p\n",&a);         printf("%p\n",(&a+1));打印完了就看明白了,希望对你有帮助
作者: 哒哒萌    时间: 2015-7-29 22:26
保证你明天就知道了
作者: Eil.tea    时间: 2015-7-29 22:27
楼上说的对- -
作者: 丁铭检    时间: 2015-7-30 12:10
865061682 发表于 2015-7-30 09:49
&a+1是指向整个数组之后的下一个地址 &a[0]+1是指向数组的第2个元素的地址 所以*(a+1)=2;本题*(p-1)=5;即* ...

你这样我就感觉明白了一点。、。




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