设int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组中6个元素的值,不能完成此操作的语句是( )。

admin2017-10-24  30

问题 设int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组中6个元素的值,不能完成此操作的语句是(  )。

选项 A、for(i=0;i<6;i++)printf(’’%2d’’,*(p++));
B、for(i=0;i<6;i++)printf(’’%2d’’,*(p+i));
C、for(i=0;i<6;i++)printf(’’%2d’’,*p++);
D、for(i=0;i<6;i++)prinff(’’%2d’’,(*p)++);

答案D

解析 指针p指向数组x,因此可以使用p来引用数组元素。选项A中,*(p++)表示先取出p指向的元素的值,然后p++指向下一个元素,满足要求;选项B中*(p+i)每次i的值发生变化,(p+i)指向x数组的x元素,因此*(p+i)是取出数组x的x元素的值,满足要求;选项C和选项A相比,少了括号,由于*运算符的优先级比++要低,因此,因此*p++表示先取出p指向的元素的值,然后p再++指向下一个元素,满足要求;选项D中(*p)++表示先取出p指向的元素的值,然后该值++,p没有增加,不满足要求。
转载请注明原文地址:https://jikaoti.com/ti/Wra0FFFM
0

最新回复(0)