main(){int a[]={1,3,5,7,9},d=1,*p=a;p+=3;d+=*p;printf("%d尀n",d).请高手详解,谢谢

2025-06-21 22:01:44
推荐回答(4个)
回答1:

我给你详细解释了。

main()
{
int a[]= {1,3,5,7,9},d=1,*p=a;
p+=3;
d+=*p;
printf("%d\n",d);
}

回答2:

*p=a; //p指向数组首地址指针
p+=3; //移动指针指向第四个数组内容7
d+=*p; //d加上p指向数组内容(1+7=8)

回答3:

写代码要有个好的格式,你看这些代码缩进后是不是很容易看了。
main()
{
int a[]={1,3,5,7,9},d=1,*p=a; //定义一个整型数组a,初始化时有5个元素,所以数组大小为5个
定义一个整型数d ,初始化为1
定义一个整型指针p,由于数组名a即该数组的首地址,所以该指针指向数组a的首地址。
p+=3; //p所指向的地址往后位移3个单位,由于他指向的是整型数组,所以他位移的单位是数组的元素。即此时p指向的内容是 a[3]。
d+=*p; //*p即取p所指向的地址上的值, 该语句等同于 d = d + *p;
printf("%d\n",d);
}

回答4:

1+7=8