问题29数组复制
【问题正文】
如果企图通过使用赋值运算符在数组间进行复制操作,编译器将给出出错信息,错误是什么呢?
【问题解答】
虽然表达式a = b; /* a and b are arrays */看上去似乎合理,但它确实是非法的。非法的理由不是显而易见的;这需要用到C语言中数组和指针之间的特殊关系。把一个数组复制给另一个数组,最简单的实现方法是利用循环对数组元素逐个进行复制:
for (i = 0; i < N; i++)
数组全部赋值为1
a[i] = b[i];
另一种可行的方法是使用来自<string.h>的函数memcpy(意思是“内存复制”)。Memcpy 函数是低级函数,它把字节从一个地方简单复制到另一个地方。为了把数组b复制给数组a,使用函数memcpy的格式如下:memcpy(a, b, sizeof(a));一些程序员喜欢memcpy函数,特别是对大型数组,因为它潜在的速度比普通循环更快。
【参考资料】
《C语言程序设计现代方法》
【关键词】
数组

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。