请写出以下代码的打印结果:

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

输出结果为:2,5

 

至于为什么输出结果是5?

要时刻牢记这样的观点:数组名本身就是指针,再加上&,就变成了双指针,这里的双指针就是指二维数组,加1,就是数组整体加1行,ptr指向a的第6个元素。

相关文章:

  • 2022-12-23
  • 2021-09-27
  • 2021-08-07
  • 2021-12-13
  • 2022-02-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-31
  • 2021-11-05
  • 2022-12-23
  • 2022-01-23
  • 2021-05-25
相关资源
相似解决方案