关于C指针的一个问题,高手请帮帮忙吧……

[复制链接]
查看11 | 回复1 | 2011-3-5 06:50:18 | 显示全部楼层 |阅读模式
#include stdio.h
void main()
{
int a[]={1,2,3};
int *p;
p=a;

printf(\"\\n*a=%d\\n\",*a);//输出2
printf(\"(*p)=%d\\n\",(*p));
printf(\"\\n*a=%d\\n\",*a);//输出2
}
数组名本身是一个指针常量,为什么这段程序中前后输出会不一样?
回复

使用道具 举报

千问 | 2011-3-5 06:50:18 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">printf(\"\\n*a=%d\\n\",*a);//输出数组a的首地址的内容,也就是a[0]的值,=1;
printf(\"(*p)=%d\\n\",(*p));//同上,p指针就是a的首地址,只是把p指向的内容了,=2;
printf(\"\\n*a=%d\\n\",*a);//也是输出数组a的首地址的内容,地址不变,只是a[0]的内容改变了,=2;
这三次输出 数组a的首地址都没有改变,只是值变成int a[]={2,2,3};
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行