2个回答
展开全部
在声明里 用:
int a[3]={1,2,3};
int *p=a,i;
for (i=0;i<3;i++) printf("%d %d\n",*(p+i),p[i]);
在语句里用:
int a[3]={1,2,3};
int *p,i;
p=a;
for (i=0;i<3;i++) printf("%d %d\n",*(p+i),p[i]);
两者效果一样。
语句里,p 是地址,语句里,*p 是指向的值。
声明里,int *p 是指针, 声明里,int p 是变量。
外形相同,在语句里 和 在声明里 意思不同。(形式逻辑在c语言里,不成立!)。
赋值号右边的 a 是数组的首地址。
int a[3]={1,2,3};
int *p=a,i;
for (i=0;i<3;i++) printf("%d %d\n",*(p+i),p[i]);
在语句里用:
int a[3]={1,2,3};
int *p,i;
p=a;
for (i=0;i<3;i++) printf("%d %d\n",*(p+i),p[i]);
两者效果一样。
语句里,p 是地址,语句里,*p 是指向的值。
声明里,int *p 是指针, 声明里,int p 是变量。
外形相同,在语句里 和 在声明里 意思不同。(形式逻辑在c语言里,不成立!)。
赋值号右边的 a 是数组的首地址。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-12-18
展开全部
给出的信息不完整啊, 比如 p是怎么定义的? *p=a是在p定义时赋值给p的吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询