读书人

请问:如何将一个数组作为参数传递到一

发布时间: 2012-06-20 20:37:21 作者: rapoo

请教:怎么将一个数组作为参数传递到一个函数中

请问怎么将一整个数组作为参数传递给一个函数,试了好几次,都只能传递数组中的一个值
最好能有简单的代码,谢谢

[解决办法]
http://topic.csdn.net/t/20040828/23/3319216.html
[解决办法]
数组做参数传递只是将首地址传进去,需要再将数组的大小作为第二个参数传入,这样有了首地址和长度就可以确定一个数组了

void fun(int a[],int size) {
int i=0;
for(i=0;i<size;i++)
printf("%d ",a[i]);
printf("\n");
}
[解决办法]
声明 void fun(int a[]);

调用 int data[100] = {0};
fun(data);


[解决办法]
数组名字就是数组地址啊 可以直接传数组名字。。
比如:
int a[10] = {0};
s32ret = fun(a);
实现的函数如下面:
int fun(*b);
[解决办法]
传数组的首地址,以及数组中元素的个数就可以了。参考下面的代码:

C/C++ code
#include <stdio.h>void test_fun(int* arr, int n){    int i;    for(i = 0; i < n; ++i)    {        printf("%d\n", *(arr + i));    }}int main(){    int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};    test_fun(arr, sizeof(arr) / sizeof(int));    return 0;}
[解决办法]
数组不能作为实体传送

要传递首地址。。
[解决办法]
数组名字就是数组地址
[解决办法]
指针嘛,数组首地址
[解决办法]
传递数组的首地址,也就是数组名就行。
[解决办法]
传递数组的引用也可以偶!
代码供参考:
C/C++ code
#include<iostream>using namespace std;void printarr(int (&arr)[5]){    for(size_t i=0;i!=5;++i)    {        cout<<arr[i]<<" ";    }    cout<<endl;}void main(){    const int MAX_SIZE=5;    int arr[MAX_SIZE]={1,2,3,4,5};    printarr(arr);} 

读书人网 >C语言

热点推荐