以下程序的输出结果是( ) A)17 B)18 C)19 D)20 --------------------------------------------------------------------- main( ) { int a[ ]={2,4,6,8,10},y=1,x=0,*p=NULL; p=&a[1]; for (;x<3;x++) y += *(p+x); printf(“%d\n”,y); }
时间: 2023-08-15 17:04:31 浏览: 40
根据给定的代码,变量y的初始值为1,变量x的初始值为0。指针p指向数组a的第二个元素,即4。在循环中,每次迭代都会通过指针p和偏移量x访问数组a的元素,并将其值加到变量y上。
第一次迭代时,x的值为0,*(p+x)即*(p+0)就是*p,即4。所以y的值变为1+4=5。
第二次迭代时,x的值为1,*(p+x)即*(p+1)就是*(p+1*sizeof(int)),即6。所以y的值变为5+6=11。
第三次迭代时,x的值为2,*(p+x)即*(p+2)就是*(p+2*sizeof(int)),即8。所以y的值变为11+8=19。
因此,该程序的输出结果是C)19。