在函数中使用数组 - C.

Gre*_*ory 1 c++ arrays function

#include <stdio.h>
#include <iostream>

using namespace std;


int write(int arr[])
{

    int n = (sizeof(arr)/sizeof(arr[0]));

    for(int r=0;r<n;r++)
    {
        printf("%d\n", arr[r]);
    }

    return 0;
}

int main()
{
    int numlist[] = {1, 3, 5, 6, 7, 9, 0, 2, 3};

    write(numlist);

    std::string strvar;
    std::cin >> strvar;

}
Run Code Online (Sandbox Code Playgroud)

屏幕上打印的内容只是数字"1".而已.刚开始使用C而我只是试图掌握语法.

Mih*_*eac 5

您无法使用函数计算函数内部数组的大小

(sizeof(arr)/sizeof(arr[0]));
Run Code Online (Sandbox Code Playgroud)

那是因为函数只看到arr一个指针(数组衰变成一个指针),而不是一个完整的数组.因此,n将是1.

您必须将大小作为额外参数传递.

int write(int arr[], int n)
{
    for(int r=0;r<n;r++)
        printf("%d\n", arr[r]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

并称之为

write(numlist, sizeof(arr)/sizeof(arr[0]));
Run Code Online (Sandbox Code Playgroud)