永发信息网

#include<stdio.h> main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf("%d,%d"

答案:1  悬赏:0  手机版
解决时间 2021-11-07 18:10
  • 提问者网友:爱唱彩虹
  • 2021-11-07 02:36
#include<stdio.h> main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf("%d,%d",*p,*(p+3));
最佳答案
  • 五星知识达人网友:毛毛
  • 2021-11-07 02:59
输出1,6.因为本身数组名也是一种指针,其指针类型与数组类型相同。数组名指针指向的内容就是数组的第一个元素,也就是下标为0的元素。那么让一个指针等于数组名,其实就是让这个指针指向数组第一个元素也就是下标为0的元素。所以*p=a[0],*(p+3)=a[3],而且是引用,所以使用*(p+3)修改的是数组的内容,所以*(p+3)+=2;之后,就是使得数组下标为3的元素的值+2。,所以a[3]=6.所以输出*p=a[0]=1,*(p+3)=a[3]=6.不明白可追问。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯