我想写一个函数,它可以接收一维数组并在那里打印它的值。还想知道函数如何接收二维数组并在那里打印它的值。接收1d数组并在那里打印其值的函数?
-4
A
回答
1
在C中,您通过指针传递数组,通常是包含其长度的第二个参数。
例如:void printArray(char * arrayStart, int length)
(对于字符数组) 我假设你知道如何编写一个简单的for循环遍历数组的所有元素并打印它们。对于2D阵列,您可以改为使用char ** arrayStart
。
(当调用函数传递以下列方式排列:
char myArray[] = "some Text"
printArray(myArray, 9);
)
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)
+0
行'int m = n1,n = n2'应该是'int m = anySize1 ,n = anySize2'以避免混淆。 (我也喜欢使用'int ** arr'而不是'int * [num]',因为我觉得它不那么容易混淆) – UnholySheep
相关问题
- 1. 集团数组并打印其值
- 2. 以5E16.8格式打印1d数组
- 3. 创建函数接受整数值和函数将返回id输入值是1然后打印1其他2打印1,3其他3打印1,3,5在php
- 4. 打印字符数组时接收垃圾值
- 5. C通用打印数组函数 - 打印字符串数组
- 6. 在一个打印函数中的Python打印数组
- 7. Numpy 1d数组CumSquare的值
- 8. 如何存储多个不同长度的numpy 1d数组并打印它
- 9. 如何在jQuery .html()函数中打印javascript数组值?
- 10. 如何打印数组值?
- 11. 从数组c打印值#
- 12. Javascript数组值不打印
- 13. 打印XML数组值
- 14. 打印数组值分别
- 15. 打印数组值PHP
- 16. 打印多个数组值
- 17. 循环遍历数组并打印出数组值
- 18. 打印数组的值在轨
- 19. 如何让您的条目接收您写入的函数并将其打印在tkinter中
- 20. 打印数组值可变的次数
- 21. 我想连接两个数组元素并打印它们的值。我收到的输出值是垃圾值
- 22. 在Python中的打印函数中打印函数
- 23. 通过函数参数打印特定数组值
- 24. 打印1D数组通过循环未按预期工作
- 25. 获取PHP数组值并将其打印在不同的列上
- 26. 从函数返回一个字符数组将打印垃圾值,但在函数中打印得很好?
- 27. 读取数据,并打印出其二维数组内容
- 28. 无法将json值打印到整数数组列表中?是保存在那里,但无法退出循环?
- 29. 在表格中打印函数值?
- 30. 在函数中打印返回值
感谢您的答复。我有一个问题。我们可以通过完整的数组,如下所示。假设我们想传递整数数组。它可以写成如下所示void printarray(int param [10]) – kadu
@kadu不幸的是,作为C不知道它自己的大小,并且你所建议的方式是行不通的,因为内部的'param [10]'实际上变成了'param + 10'(param是指向第一个元素的指针数组),所以为了避免混淆,这种传递数组的方式是不允许的。虽然这有点不方便,但是一旦你习惯了,它并没有那么糟糕(并且指针对很多事情都非常有用) – UnholySheep