以下程序 int aa[3][3]={{2},{4},{6}}; main() { int i,*p=&aa[0][0]; for(i=0;i<2;i++){ if(i==0)aa[i][i+1]=*p+1; e

admin2010-05-22  22

问题 以下程序    int aa[3][3]={{2},{4},{6}};    main()    { int i,*p=&aa[0][0];    for(i=0;i<2;i++){      if(i==0)aa[i+1]=*p+1;      else  ++p;      printf("%d",*p);      }    }    的输出是________。

选项 A、23
B、26
C、33
D、36

答案1

解析 观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中, i=0时,aa[0][1]=3;*p=2;*p输出的是指针所指向数组值,此时p所指向的是aa[0][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。
转载请注明原文地址:https://kaotiyun.com/show/otWp777K
0

最新回复(0)