📜  门| GATE-CS-2014-(Set-3)|第60章(1)

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

介绍

本篇文章是根据 印度门(GATE-CS-2014-(Set-3))考试第60题所编写的,主要讲解了一个程序的运行结果。

题目

给定以下程序的输出值:

#include <stdio.h>
int main()
{
    int i, x[5], *p;
    x[0] = 10;
    p = x;
    printf("%d ", *p);
    p++;
    printf("%d ", *p);
    p += 2;
    printf("%d ", *p);
    return 0;
}
选项

(A) 10 11 13

(B) 10 0 0

(C) 10 11 32766

(D) 10 32766 32766

解答

本程序的主要功能为输出一维数组中的数据。

首先,定义了一个长度为 5 的一维整型数组 x,变量 i,以及整型指针 p ,并将 x[0] 赋为 10。

int i, x[5], *p;
x[0] = 10;
p = x;

变量 p 指向了数组 x 的首元素,也就是 x[0],指针 p 指向的数据是 10,因此第一个 printf() 函数输出 10

printf("%d ", *p);

接下来,指针 p 指向了数组 x 中的第二个元素 x[1],但是并没有对其赋值,因此输出的是未知的值。

p++;
printf("%d ", *p);

之后,指针 p 先加 2 步,指向了数组 x 中的第三个元素 x[2],输出的是 13,因为在 x[1]x[2] 中的内存空间中存储了其它程序的运行数据,因此这里的结果可能会有所不同,但无论如何输出的数值都是未知的。

p += 2;
printf("%d ", *p);

因此,本题答案为 (D) 10 32766 32766。

结论

本程序主要讲解了通过指针来遍历一维数组的方法,并且讲解了 C 程序中未初始化变量值的情况。

返回结果
# 介绍

本篇文章是根据 印度门(GATE-CS-2014-(Set-3))考试第60题所编写的,主要讲解了一个程序的运行结果。

## 题目

给定以下程序的输出值:

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

(A) 10 11 13

(B) 10 0 0

(C) 10 11 32766

(D) 10 32766 32766

解答

本程序的主要功能为输出一维数组中的数据。

首先,定义了一个长度为 5 的一维整型数组 x,变量 i,以及整型指针 p ,并将 x[0] 赋为 10。

int i, x[5], *p;
x[0] = 10;
p = x;

变量 p 指向了数组 x 的首元素,也就是 x[0],指针 p 指向的数据是 10,因此第一个 printf() 函数输出 10

printf("%d ", *p);

接下来,指针 p 指向了数组 x 中的第二个元素 x[1],但是并没有对其赋值,因此输出的是未知的值。

p++;
printf("%d ", *p);

之后,指针 p 先加 2 步,指向了数组 x 中的第三个元素 x[2],输出的是 13,因为在 x[1]x[2] 中的内存空间中存储了其它程序的运行数据,因此这里的结果可能会有所不同,但无论如何输出的数值都是未知的。

p += 2;
printf("%d ", *p);

因此,本题答案为 (D) 10 32766 32766。

结论

本程序主要讲解了通过指针来遍历一维数组的方法,并且讲解了 C 程序中未初始化变量值的情况。