我昨天开始学习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那样这是一个数组。
答案 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]);