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

admin2020-05-19  37

问题 设有定义语句
   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)++);

答案D

解析 指针p指向数组x,因此可以使用p来输出数组x的值。选项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没有增加,每次循环都*p取出的x[0]的值,不满足要求。
转载请注明原文地址:https://jikaoti.com/ti/q9G0FFFM
0

最新回复(0)