我想知道是否可以在C中打印2D数组,就像在python中一样。例如,如果我有int array1[10][10];
然后填写数组,那么printf("%li", array1)
似乎不起作用。在C中,是否有类似printf
的内容可以将array1
打印为[1, 2, 3, 4]
?在python中它只是print(array1)
答案 0 :(得分:3)
不幸的是,没有标准的方法可以做到这一点。打印阵列的方法是:
int array1[] = {1, 2, 3, 4};
size_t i = 0;
for (i = 0; i < 4; i++){
printf("%d ", array1[i]);
}
请注意,为了更正确,您可以使用sizeof
获取数组的大小:
int array1[] = {1, 2, 3, 4};
int i = 0;
for (i = 0; i < sizeof(array1)/sizeof(int); i++){
printf("%d ", array1[i]);
}
有些人会认为您应该使用size_t
代替int
作为索引,因为这是sizeof
返回的内容。
编辑: Python可以打印整个数组,因为数组不仅存储在内存中的一堆数字中,还存储为存储其他信息的数据结构,例如长度数组。
答案 1 :(得分:1)
更具体地说,在C中打印2D数组时,您需要实现双循环:
//伪代码
答案 2 :(得分:0)
直截了当的答案是“不”......你必须自己编码。并且不可能在C中编写一般的转储程序例程,因为数组的大小是未知的。
答案 3 :(得分:-2)
// Int array [10][10];
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
Print("%d",array[i][j]);
}
}
使用此代码可以在C
中打印2D数组