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

admin2019-12-17  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,因此可以使用n来输出数组x的值。选项A中,*(1)++)表示先取出p指向的元素的值,然后pH指向下一个元素,满足要求;选项B中*(p+i)每次i的值发生变化,(p+i)指向x数组的x元素,因此*(p+i)是取出数组x的x元素的值,满足要求;选项C和选项A相比,少了括号,由于’运算符的优先级比++要求,因此,因此*n++表示先取出p指向的元素的值,然后p再++指向下一个元素,满足要求;选项D中(*p)++表示先取出p指向的元素的值,然后该值++,p没有增加,每次循环都*p取出的x[0]的值,不满足要求。
转载请注明原文地址:https://jikaoti.com/ti/nqG0FFFM
0

最新回复(0)