在C

时间:2017-05-22 05:31:18

标签: c arrays memory

我是编程的新手,我对阵列有困难。我已经声明了数组但是当我去打印数组的一个元素时,我得到一个非常不同的数字(可能是一个内存地址?)。

#include <stdio.h>

int main()
{
    int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    printf("%d", &array[3]);
    return 0
}

然后打印6356748而不是“3”。我做错了什么?

3 个答案:

答案 0 :(得分:2)

使用:

printf("%d", array[3]);

使用&variable时,它会返回变量的地址。

答案 1 :(得分:2)

那是因为你正在打印地址:

printf("%d", &array[3]); //请注意使用&amp;

使用它来打印值:

printf("%d", array[3]); //没有&amp;使用

答案 2 :(得分:2)

使用&array[3]你没有重新考虑值array[3](你正在使用指针,这是对内存地址的引用,稍后你会知道它)。您只需删除&

即可
printf("%d", array[3]);