02
2020
04

a 和 &a 有什么区别

请写出以下代码的打印结果,主要目的是考察a和&a的区别。


#include<stdio.h> 

void main( void ) 

     int a[5]={1,2,3,4,5};

     int *ptr=(int *)(&a+1);

     printf("%d,%d",*(a+1),*(ptr-1)); 

     return;

 }

输出结果:2,5。


注意:数组名a可以作数组的首地址,而&a是数组的指针。思考,将原式的int *ptr=(int *)(&a+1);改为int *ptr=(int *)(a+1);时输出结果将是什么呢?

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。