C:打印一个数组

时间:2017-04-06 20:29:57

标签: c

我昨天开始学习C语言,而我所知道的另一种语言是Python。

我在使用数组时遇到了一些麻烦,因为它们与Python列表完全不同。

我试图打印一个数组,而不是它的一个元素,但是数组本身。

#include <stdio.h>

int array[3] = {1, 2, 3}

main(){
    printf("%i, %i", array[0], array);
}

我得到的是 1 (显然)和 4210692 ,我无法从中找到它。

我首先要做的是创建一个数组数组:

float a[1][4];
float b[4];

a[0] = b;
main(){
    printf("%f", a[0]);
}

但它返回一个奇怪的数字,而不像Python那样这是一个数组

2 个答案:

答案 0 :(得分:2)

这是数组的内存地址(因为array-to-pointer decaying)。

要正确打印指针,您应该使用%p

答案 1 :(得分:1)

从打印array获得的“ wierd ”值实际上是数组第一个元素的内存地址。

要打印数组,您需要使用for循环:

for (int i = 0; i < array_size; i++)
    printf("%d\n", array[i]);