希望我的问题是清楚和相关的,指针的新手... - 我可以通过引用指向我要开始复制的数组中第一个插槽位置的指针来一次复制数组的整个部分吗从?
例如—— 给定一个数组:A [ 1,2,3,4,5,7,8,3,2,5,1,0,9] - 我只想将数组的一部分从第 n 个插槽复制到数组 B [0 0 0 ..... ] 的开头(B 的长度与 A 相同)。
我可以一次完成吗,使用指针而不是循环?类似的东西 - 将指针切换到 B 中的第 1 个槽,指针指向 A 的第 n 个槽,以及 B 中的第 n 个槽和 A 中的最后一个槽?
提前致谢!
最佳答案
这就是 memcpy
是为了。
memcpy(B, A + n, (N - n) * sizeof(A[0]));
哪里N
是 A
中的元素数.如果A
确实是一个数组(不仅仅是指向一个的指针),那么 N
可以是computed作为sizeof(A) / sizeof(A[0])
,所以调用简化为
memcpy(B, A + n, sizeof(A) - n * sizeof(A[0]));
memcpy
住在<string.h>
;它的第一个参数是副本的目的地,第二个参数是源。
(很抱歉,我并没有真正遵循您所想的那种指针技巧,所以我无法对此发表评论。)
关于c - 在 c : Can I copy a whole portion of an array at once, 中,通过引用指向我要从中复制的数组中插槽位置的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108878/