首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数组传递给函数

将数组传递给函数
EN

Stack Overflow用户
提问于 2014-10-07 02:07:32
回答 1查看 189关注 0票数 0

很抱歉这次转帖,因为我不知道如何表达我的问题,因为这是我第一次使用堆栈溢出。我希望有人能帮我解决这个学习测验的问题。

我对这个程序进行了研究,但我不知道它是否与arraySize上的测验问题有关。

问题如下:我们将数组ai传递给函数fillArray。传递给函数的到底是什么?答案是单个内存地址,而不是10个整数!这就是为什么我们可以使用函数用10个数字填充数组ai。完成上面的函数fillArray,以便它从用户读取arraySize个整数,并用这些数字填充数组。编写驱动程序,对不同大小的整数数组进行函数测试。注意,函数fillArray中的形参int数组可以更改为int * array[]。通过修改和测试您的代码来验证这一点。

我的代码如下:

代码语言:javascript
运行
复制
#include <stdio.h>
#define MAX 10

int fillArray(int array[], int arraySize);
void print_intaray(int array[], int arraySize);
main()
{
    int ai, exam_scores[MAX];

    printf("***List of Array***\n\n");
    ai = fillArray(exam_scores, MAX);
    print_intaray(exam_scores, ai);
}

int fillArray(int array[], int arraySize)
{
    int ai, count = 0;

    printf("Type array, EOF to quit\n");

    while ((count < arraySize) && (scanf("%d", &ai) !=EOF))
    {
        array[count] = ai;
        count++;
    }
    return count;
}

void print_intaray(int array [], int arraySize)
{
    int i;
    printf("\n***Your Arrary***\n\n");
    for (i = 0; i<arraySize; i++)
        printf("%d\n", array[i]);
}

我是编程新手,我希望我的问题能以某种方式得到解决。

感谢您的观看:)

EN

回答 1

Stack Overflow用户

发布于 2014-10-07 02:14:30

假设问题是“为什么int array[]int *array在函数参数中是等价的”:

我不是一个精通C语言的专家,但AFAIK数组(在C中)很大程度上只是一个指针,你可以将某个偏移量附加到它上面。告诉C你需要一个int myarray[],这意味着你需要一个指向整数(int *array)的指针。如果递增指针,则可以访问数组中的下一个元素。这也称为指针算法。

C编译器在后台将像foo[3]这样的数组语法转换成像*(*foo+3)这样的数组语法,但您也可以通过处理指针来自己完成这项工作。

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

https://stackoverflow.com/questions/26222141

复制
相关文章

相似问题

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