Bing's Blog

胡言乱语,不必当真。

数组作为函数参数传递

重点:在C中,数组是不能作为参数进行传递的,但是可以通过传递指向数组初始元素的指针,使得在函数内部操作数组成为可能。

在函数这一侧,可以通过array[i]引用数组的内容。Why?本质上array[i] 不过是*(array + i)的语法糖

#include<stdio.h>
void func(int *array, int size)
{
int i;
for(i = 0; i < size; i++)
{
     printf("array[%d]..%d\n", i, array[i]);
}
}

int main()
{
int array[] = {1,2,3,4,5};
func(array, sizeof(array) / sizeof(int));
return 0;
}

这个解决了很多关于指针的困惑。

传递二维数组:

//传递二维数组
#include<stdio.h>
void func(int (*hoge)[3])//hoge是指向int数组(个数为3)的指针
{
    int i, j;
    for(i = 0; i < 4;i++)
    {
        for(j = 0; j < 3; j++)
        {
            printf("%d ",hoge[i][j]);
        }
        putchar('\n');
    }
}
int main(void)
{
int hoge[][3] = {
    {1,2,3},
    {4,5,6},
    {7,8,9},
    {10,11,12}
};
func(hoge);
return 0;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011240016/article/details/52372686
个人分类: C/C++
上一篇DMA方式总结
下一篇C复杂声明练习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭