有以下程序 #include main() { int a[10] = { 1,3,5,7,11,13,17 }, *p=a; printf("%d,", *( p++ )); printf("%d\n", *( ++p )); } 程序运行后的输

admin2015-07-28  25

问题 有以下程序
#include
main()
{
int a[10] = { 1,3,5,7,11,13,17 }, *p=a;
printf("%d,", *( p++ ));
printf("%d\n", *( ++p ));
}
程序运行后的输出结果是( )。

选项 A、1,5
B、3,5
C、3,7
D、1,3

答案A

解析 在该程序中,a是int类型的一维数组,p为基本类型为int的指针变量,指向数组a的第一个元素。输出*(p++)时,自加运算符后置即先输出p指向的值后p再向后移动一位,所以第一次输出的结果为1,p指向数组a中的第二个元素。输出*(++p)时,自加运算符前置即先将p向后移动一位后再输出p指向的值,所以第二次输出的结果为5,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/UMn0FFFM
0

最新回复(0)