C语言中怎么把一维数组赋给另外一个一维数组

能不能将a【10】=b【10】这样赋值。。。

不可以,之所以不可以是因为数组名是个常量,它的值是数组首元素地址,即不能将其它值付给这个常量。
可以采用循环的方法逐个复制,或者采用另一个同类型的指针(相对于数组名,指针是变量)指向要复制的数组,之后就可以采用这个指针访问之前的那个数组
温馨提示:答案为网友推荐,仅供参考
第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));
相似回答