{ int a[]={1,2,3,4,5,6};int *p;p=a;printf("%d ",*p);printf("%d ",*(++p));
main(){inta[]={1,2,3,4,5,6};int*p;p=a;printf("%d",*p);printf("%d",*(++p));printf("%d"...
main()
{ int a[]={1,2,3,4,5,6};
int *p;
p=a;
printf("%d ",*p);
printf("%d ",*(++p));
printf("%d ",*++p);
printf("%d ",*(p--));
p+=3;
printf("%d %d ",*p,*(a+3));
}
A) 1 2 3 3 5 4 B) 1 2 3 4 5 6 C) 1 2 2 3 4 5 D) 1 2 3 4 4 5
为何选A?这些输出每一个是什麽意思,希望有大神详细解答 展开
{ int a[]={1,2,3,4,5,6};
int *p;
p=a;
printf("%d ",*p);
printf("%d ",*(++p));
printf("%d ",*++p);
printf("%d ",*(p--));
p+=3;
printf("%d %d ",*p,*(a+3));
}
A) 1 2 3 3 5 4 B) 1 2 3 4 5 6 C) 1 2 2 3 4 5 D) 1 2 3 4 4 5
为何选A?这些输出每一个是什麽意思,希望有大神详细解答 展开
2个回答
展开全部
main()
{ int a[]={1,2,3,4,5,6};
int *p;
p=a; //p指向的数组a
printf("%d ",*p); //*p指的是数组a的首地址的数据就是数组的第一个元素,是1
printf("%d ",*(++p));//*(++p)是先自加再用,p指向第一个元素,自加1后就是指向第二个元素,是2
printf("%d ",*++p); //因为p已经指向的第二个元素,再自加1就是第三个元素,是3
printf("%d ",*(p--));//p--是先用再自减,所以输出是3,然后p自身再做自减1,
p+=3; //上一步p自减一后指向第二个元素,再后移3个元素就是5
printf("%d %d ",*p,*(a+3));/*(a+3)就是a[3]就是第4个元素就是4
}
{ int a[]={1,2,3,4,5,6};
int *p;
p=a; //p指向的数组a
printf("%d ",*p); //*p指的是数组a的首地址的数据就是数组的第一个元素,是1
printf("%d ",*(++p));//*(++p)是先自加再用,p指向第一个元素,自加1后就是指向第二个元素,是2
printf("%d ",*++p); //因为p已经指向的第二个元素,再自加1就是第三个元素,是3
printf("%d ",*(p--));//p--是先用再自减,所以输出是3,然后p自身再做自减1,
p+=3; //上一步p自减一后指向第二个元素,再后移3个元素就是5
printf("%d %d ",*p,*(a+3));/*(a+3)就是a[3]就是第4个元素就是4
}
展开全部
main()
{ int a[]={1,2,3,4,5,6};
int *p;
p=a;
printf("%d ",*p); //数组a第一个元素是什么,是:1
printf("%d ",*(++p));//第2个元素是什么,是:2
printf("%d ",*++p); //第2个元素自增1是什么,是:3
printf("%d ",*(p--));//还是问第2个元素是几,但是上一个表达式后,第2个元素就成了:3
p+=3; //向后移动3个位置
printf("%d %d ",*p,*(a+3));//输出第5个元素是几:5 输出相对首地址偏移3个位置的元素:4 即a[3]
}
{ int a[]={1,2,3,4,5,6};
int *p;
p=a;
printf("%d ",*p); //数组a第一个元素是什么,是:1
printf("%d ",*(++p));//第2个元素是什么,是:2
printf("%d ",*++p); //第2个元素自增1是什么,是:3
printf("%d ",*(p--));//还是问第2个元素是几,但是上一个表达式后,第2个元素就成了:3
p+=3; //向后移动3个位置
printf("%d %d ",*p,*(a+3));//输出第5个元素是几:5 输出相对首地址偏移3个位置的元素:4 即a[3]
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询