关闭

数组作为函数参数传递

标签: c语言形参数组指针
121人阅读 评论(0) 收藏 举报
分类:

重点:在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;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:232516次
    • 积分:6326
    • 等级:
    • 排名:第3886名
    • 原创:398篇
    • 转载:1篇
    • 译文:1篇
    • 评论:95条
    最新评论