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而我只是试图掌握语法.
您无法使用函数计算函数内部数组的大小
(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)