📌  相关文章
📜  教资会网络 | UGC-NET CS 2017 年 12 月 2 日 |问题 48(1)

📅  最后修改于: 2023-12-03 15:39:56.549000             🧑  作者: Mango

UGC-NET CS 2017 年 12 月 2 日 | 问题 48

题目描述:

以下 C 语言程序的输出是什么?

#include <stdio.h>
int main() 
{
    int a[] = {1, 2, 3, 4, 5}, *p = a, i;
    p += 2;
    i = *++p;
    printf("%d", i);
    return 0;
}

答案是:4

解析:

  1. 数组 a 中有 5 个元素,分别为 1, 2, 3, 4, 5
  2. 定义指针 p 并指向数组的第一个元素 a[0]
  3. 将指针 p 加上 2,指向数组的第三个元素 a[2]
  4. 执行 *++p,先将指针 p 的值加 1,再取出指针指向的值 a[3] 给变量 i
  5. 输出变量 i 的值,即为 4

代码片段:

```c
#include <stdio.h>
int main() 
{
    int a[] = {1, 2, 3, 4, 5}, *p = a, i;
    p += 2;
    i = *++p;
    printf("%d", i);
    return 0;
}