设为首页 加入收藏

TOP

数组中a和&a的区别
2014-11-24 00:12:00 来源: 作者: 【 】 浏览:17
Tags:区别

最近在看C语言深入一点方面的书,感觉指针和数组的关系有很大要理解的地方。偶尔看到有人写了关于指针和数组的长篇大论。直觉告诉我那是一篇好文章。一定是那位高手几年来实践和琢磨的成果。如果能达到他理解的那种水平,那我的C语言又会上一个台阶。但是为了能有深刻的体会,我先不看他得文章,自己先琢磨一下。

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

int *p1=a; //将p1定义为指向数组a首元素的首地址,而不是指向数组a的地址,虽然值一样,意义不一样

a+i不等于&a+i

a+i==a+i*sizeof(a[0])而&a+i=a+i*sizeof(a)

下面程序的运行结果为? www.2cto.com

#include

#include

int main()

{

int a[5];

int *p1=a;

int *p2=&a;

printf("%p\n",a);

printf("%p\n",a+1);

printf("%p\n",&a+1);

system("PAUSE");

return 0;

}

在我的机子上运行结果为:0022FF20

0022FF24

0022FF34

摘自 雷格码

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VS2008快捷键使用技巧 下一篇多标签视图类CTabView的设计实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: