首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用char数组数组的指针?

如何使用char数组数组的指针?
EN

Stack Overflow用户
提问于 2019-05-13 05:46:49
回答 1查看 0关注 0票数 0

我正在编写一个填充数组数组的程序char。如何使用指针而不是将整个数组数组传递char给函数参数。

请参阅以下代码:

#define COLUMN 20
#define ROW 10

void fillArray(char array[][COLUMN], char c)
{
    int i = 0, j;
    for (; i < ROW; i++)
        for (j = 0; j < COLUMN; j++)
            array[i][j] = c;
}

int main()
{
    char array[ROW][COLUMN];
    fillArray(array, '*');
}

有没有办法使用指针而不是将整个char数组传递给' fillArray'函数的第一个参数?

EN

回答 1

Stack Overflow用户

发布于 2019-05-13 15:41:58

有没有办法使用指针

是的,完全像你那样做。:-)

这个宣言

void fillArray(char array[][COLUMN], char c)

实际上是相同的

void fillArray(char (*array)[COLUMN], char c)

第二个版本告诉你,它array被定义为指向COLUMN chars 数组的指针。

一般规则是:

当一个数组传递给一个函数时,它会被衰减为指向它的第一个元素的指针。* 1

因此,当main()你传递arrayfillArray()那时array,腐烂到指针a char[COLUMN],到a char(*)[COLUMN]

* 1相反,这意味着在C中不可能将“ 整个数组 ”直接传递给函数。这只能通过将数组包装到一个中来实现struct

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档