第1个回答 2020-04-18
void
main()
{
int
a[10]={1,2,3,4,5....};
int
b[10];int
i;
for(i=0;a[i]!=0;i++)
b[i]=a[i];
}
如果a[10]=b[10]
那么仅仅赋了b{}数组的第11个元素给a[]数组的第十一个元素,没法一次性全部赋给.楼下那个方法也不错.
第2个回答 2019-08-02
这样只是数组b第11个元素赋值给数组a第11个元素
可以这样
n为你要从数组b赋值到数组a的个数
for(i=n;i>=0;i--)
a[i]=b[i];
第3个回答 2019-10-24
定义a[][4]为一个4列的二维数组后,a[2]是*(a+2),这里a是一个指向4个整型的数组指针;
a[2]也可以理解为&a[2][0],因为数组a其实只定义了一行,所以&a[2][0]已经越界了,不过在c语言中越界访问是不会报错的,所以a[2][0]的地址比a[0][0]的地址偏移了2行,也就是8个整型,也是32个字节。这样理解为&a[0][0]+32也可
第4个回答 2020-03-05
不可以,只能挨个将b
里面的值赋值到a里面
int
i;
for(i=0;i<(sizeof(b)/sizeof(int);i++)
{
a[i]
=
b[i];
}
不过如果你保证了a和b大小一致的话,也可以偷懒
memcpy(a,
b,
sizeof(b));