下面程序的运行结果是__?

#include 
int main()
{
    printf("\n");
    int a[5] = { 1, 2, 3, 4, 5 };
    int *p, **k;
    p = a;
    k = &p;
    printf("%d", *(p++));
    printf("%d", **k);
    return 0;
}
1022 次浏览
  • A、11
  • B、12
  • C、21
  • D、22
初始赋值后,p指向a[0],k指向p,第一个printf,先输出p指向的值,然后p自增,所以,第一个printf输出a[0]的值,即1;k是二级指针,第二个printf输出k指向的值的指向的值,而上一句p已经自增了,所以,此时输出a[1]的值,即2。注意:两次输出是没有回车或者空格隔开的。
挑战成功
2年前
挑战失败
2年前
挑战成功
2年前