全部问题 > 当前问题

a【0】【1】为什么等3啊,还有这个解析全看不懂

一只猪的感慨 2016-2-24 21:18:56

共 1 个回答

最佳答案

水根 2016-2-24 21:36:29

指针p的初始值是a[0][0]也就是2,aa[i][i+1]=*p+1;就是aa[0][1]=2+1,它己经改动了数组中的值了

问题来自: 指针和二维数组
有以下程序
#include <stdio.h>
main()
{ int aa[3][3]={ {2},{4},{6} }, i, *p = &aa[0][0];
  for ( i=0; i<2; i++ )
  { if( i == 0 ) aa[i][i+1] = *p + 1;
    else   ++p;
    printf("%d ", *p );
  }
}

程序运行后的输出结果是( )
A. 2  3
B. 2  6
C. 4  3
D. 4  6
答案:A
解析:i=0的时候 aa[0][1]=3 输出*p为2 i=1 执行++p 此时指针指向了aa[0][1] 输出为3 选A