C语言中怎么把一维数组赋给另外一个一维数组
答案:7 悬赏:10 手机版
解决时间 2021-02-12 13:18
- 提问者网友:爱了却不能说
- 2021-02-12 08:44
C语言中怎么把一维数组赋给另外一个一维数组
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-02-12 10:08
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[]数组的第十一个元素,没法一次性全部赋给.楼下那个方法也不错.
{
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[]数组的第十一个元素,没法一次性全部赋给.楼下那个方法也不错.
全部回答
- 1楼网友:woshuo
- 2021-02-12 14:36
不可以,只能挨个将b 里面的值赋值到a里面
int i;
for(i=0;i<(sizeof(b)/sizeof(int);i++)
{
a[i] = b[i];
}
不过如果你保证了a和b大小一致的话,也可以偷懒
memcpy(a, b, sizeof(b));
int i;
for(i=0;i<(sizeof(b)/sizeof(int);i++)
{
a[i] = b[i];
}
不过如果你保证了a和b大小一致的话,也可以偷懒
memcpy(a, b, sizeof(b));
- 2楼网友:神鬼未生
- 2021-02-12 14:00
我只想说,推荐答案在验证你说的赋值方法的时候有问题的吧,编译就会报错你还得出结果了?!
- 3楼网友:舊物识亽
- 2021-02-12 13:16
不行
- 4楼网友:躲不过心动
- 2021-02-12 12:42
这样只是数组b第11个元素赋值给数组a第11个元素
可以这样 n为你要从数组b赋值到数组a的个数
for(i=n;i>=0;i--)
a[i]=b[i];
可以这样 n为你要从数组b赋值到数组a的个数
for(i=n;i>=0;i--)
a[i]=b[i];
- 5楼网友:归鹤鸣
- 2021-02-12 11:53
不可以a【10】指的是a数组的第11个元素,同样b也一样,你这样写只能够把b的第11个元素值赋给a的第十一个元素
- 6楼网友:怙棘
- 2021-02-12 10:45
有两种方法可以实现。
1 逐个赋值法。
采用循环,逐项赋值。
以整型为例,int a[10], b[10];
要把a的值赋值给b,可以写作
int i;
for(i = 0; i < 10; i ++)
b[i] = a[i];
2 整体复制法。
利用C语言库函数memcpy可以整体复制。memcpy声明与string.h中,形式为
void * memcpy(void *dst, void *src, int length);
其功能为将src地址上长度为length字节的数据,复制到dst上。
于是上一个方法中的例子,可以用
memcpy(b,a,sizeof(a));
来实现相同效果。
代码量较前一个方法更少,同时效率也更高。
1 逐个赋值法。
采用循环,逐项赋值。
以整型为例,int a[10], b[10];
要把a的值赋值给b,可以写作
int i;
for(i = 0; i < 10; i ++)
b[i] = a[i];
2 整体复制法。
利用C语言库函数memcpy可以整体复制。memcpy声明与string.h中,形式为
void * memcpy(void *dst, void *src, int length);
其功能为将src地址上长度为length字节的数据,复制到dst上。
于是上一个方法中的例子,可以用
memcpy(b,a,sizeof(a));
来实现相同效果。
代码量较前一个方法更少,同时效率也更高。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯