发布网友 发布时间:2024-10-23 15:28
共2个回答
热心网友 时间:1天前
emmm,一楼的回答是对的。楼主看一下*q=p-2,你是不是把这个条件抄错了?习题上是不是*q=p+2
①*p=&a[3],所以*p=4(这个不解释了)
②A我们明确一个概念,就是a[10]这串位置是连续的。
B假设i=*p(i为p所指的单元格的值)。*p=4,即i=&a[3]=4
Cp-2即p所在的地址往前推2单元格;即i所指的值往前推2单元格,即i=&a[3]往前推2单元格,即&a[1]=2
综上所述4+2=6
热心网友 时间:1天前
main( )
{
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2;
//*p=&a[3]把a中的3索引号地址给指针p,3索引号处为4,因为索引是从0算起
//*q=p-2把p的地址减2个int位,即1处的索引号地址给指针q,1处的索引号处的值为2
printf("%d\n",*p+*q);
//*p+*q的值,是索引3处的值(4)加上索引1处的值(2),等于6。
}
答案为6或为D,