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

admin2009-01-15  17

问题 设有定义语句:      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 ++ ) printf("%2d" ,( * p) ++ );

答案8

解析 *p=x的作用是将x的首地址赋给指针变量p。选项A)正确,*(P++)中括号内的++是在P的后面,所以它先取*P的值x[0],再执行p++;选项B)正确,p+i表示x的地址,*(p+i)表示x的值;选项C)中的*和++处于同一优先级别,而结合方向为自右而左,因此*p++相当于*(p++),与选项A)相同;选项D)中的(*p)++是使*p的值+1,即 x[0]的值加1,它不能实现指针的移动,每次循环只是x[0]的值在改变,而P的值并没有改变,所以不能实现6个元素的输出。
转载请注明原文地址:https://kaotiyun.com/show/bZHp777K
0

相关试题推荐
最新回复(0)