Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将数组传递给函数_C_Arrays_Function - Fatal编程技术网

C 将数组传递给函数

C 将数组传递给函数,c,arrays,function,C,Arrays,Function,我能把a的地址分配到这里吗 或者这是正确的 int main() { int a[]={1,2,3}; int a1[]=a; .... } 第二个可能是错误的,因为我已经创建了一个分配了0个空间的数组a1 如果我们能把它传递给这样的函数 为什么我们不能直接使用它,就像我在C中给出的第一个例子一样,不能将数组分配给其他数组。相反,必须使用指向数组中第一个元素地址的指针。下面是一个例子,说明了这一点: int main() { int a[]={1,2,3}; int a

我能把a的地址分配到这里吗

或者这是正确的

int main()
{
    int a[]={1,2,3};
    int a1[]=a;
    ....
}
第二个可能是错误的,因为我已经创建了一个分配了0个空间的数组a1

如果我们能把它传递给这样的函数
为什么我们不能直接使用它,就像我在C中给出的第一个例子一样,不能将数组分配给其他数组。相反,必须使用指向数组中第一个元素地址的指针。下面是一个例子,说明了这一点:

int main()
{
int a[]={1,2,3};
int a1[];
a1=a;
...
}

...... 您试过了吗?没有,您不能将一个数组分配给另一个数组。相反,您必须使用指针。
int main()
{
int a[]={1,2,3};
int a1[];
a1=a;
...
}
/* My array */
int arr[] = {1, 2, 3, 4};

/* pointer which points to the first element of arr[] */
int *ptr = &arr[0];

/* prints out contents of pointer */
for (size_t i = 0; i < sizeof arr / sizeof arr[0]; i++) {
    printf("%d\n", ptr[i]);
}

/* Outputs: 
   1
   2 
   3
   4
*/