C 将数组传递给函数
我能把a的地址分配到这里吗 或者这是正确的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
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
*/