c语言程序求解~·

[复制链接]
查看11 | 回复3 | 2008-10-30 13:03:09 | 显示全部楼层 |阅读模式
#define N sizeof(a)/sizeof(a[0])
void main(){
int a[6]={10,20,30,40},i,*p=a,*p1=&a[5];
p1=p1-4;
*p1++=15;
*p1=*(++p)*2;
for(i=3;i<N;i++)

p=20=i*10;
for(i=0;i<N;i+=2)

printf("%d\t%d\n",a,a[i+1]);
}
答:10 15

30 40

50 60
急~问一下:这个程序中的p是指针数组吗?还有好像没有定义过p直接就可赋值?为何要求输出a数组的值,却是之前付给p的值呢?如果可以的话能不能解释一下这个程序。

回复

使用道具 举报

千问 | 2008-10-30 13:03:09 | 显示全部楼层
*p=a;因为a是数组,,一般用a 表示的话,都表示是数组的头位置的指针, 所以指针p初始化的时候,已经指向了数组a的头位置。。...
回复

使用道具 举报

千问 | 2008-10-30 13:03:09 | 显示全部楼层
p不是指针数组!!!!!...
回复

使用道具 举报

千问 | 2008-10-30 13:03:09 | 显示全部楼层
p等于数组中的a,因为数组名a就是一个指针。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行