我想编写一个可以接收一维数组并在那里打印其值的函数。还想知道一个函数如何接收二维数组并在那里打印它的值。
答案 0 :(得分:1)
在C中,您通过指针传递数组,通常是第二个参数,包含其长度。
例如:void printArray(char * arrayStart, int length)
(对于char数组)
我假设您知道如何编写一个简单的for循环来迭代数组的所有元素并打印它们。对于2D阵列,您可以使用char ** arrayStart
代替。
(调用函数时,以下列方式传递数组:
char myArray[] = "some Text"
printArray(myArray, 9);
)
答案 1 :(得分:0)
示例代码:
#include<stdio.h>
void print_1D(int *arr,int m)
{
int i;
for(i=0;i<m;i++)
printf("%d ",arr[i]);
putchar('\n');
}
void print_2D(int *arr[num],int m,int n) //<---observe here
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d ",arr[i][j]);
putchar('\n');
}
}
int main()
{
int oneD[anySize1] = {2,5,67,23,32,....};
int twoD[anySize2][num] = { {23,17,..},{....},{....},....}; //<---and here
int m = anySize1,n = anySize2;
print_1D(oneD,m);
print_2D(twoD,m,n);
return 0;
}
如果2d是数组,则声明为
int arr2D[10][20];
然后函数声明必须是,
void print_2D(int *arr[20],int m,int n)
或
void print_2D(int arr[][20],int m,int n)