有以下程序: #include main() { int a[10]={11,12,13,14,15,16,17,18,19,20},*p=a,i=9; printf("%d,%d,%d\n",a[p—a],p[i]

admin2016-04-07  28

问题 有以下程序:
    #include
    main()
    {
    int a[10]={11,12,13,14,15,16,17,18,19,20},*p=a,i=9;
    printf("%d,%d,%d\n",a[p—a],p,*(&a));
    }
    程序运行后的输出结果是(    )。

选项 A、11,19,19
B、12,20,20
C、11,20,20
D、12,19,20

答案C

解析 *p=a,将数组a的首地址赋给指针p。p—a=0,待输出变量为a[0]。p表示p后i个地址的元素,待输出变量为a[9]。&a取a地址,*(&a)取这个地址内的元素,待输出变量为a[9]。最后输出为11,20,20,故C选项正确。
转载请注明原文地址:https://jikaoti.com/ti/Tdi0FFFM
0

最新回复(0)