memcpy 和for循环
时间: 2023-12-14 13:34:35 浏览: 112
memcpy和for循环都是用于内存拷贝的方法,但是它们的使用场景不同。memcpy是C语言中的函数,用于将一段内存中的数据拷贝到另一段内存中,效率比较高,适用于内置类型的拷贝。而for循环则是一种通用的循环结构,可以用于任何类型的拷贝,包括自定义类型的拷贝。for循环的优点是安全,可以避免一些潜在的问题,比如浅拷贝和深拷贝的问题。
下面是两个例子,分别演示了memcpy和for循环的用法:
1.使用memcpy拷贝内置类型的数组
```c
#include <stdio.h>
#include <string.h>
int main()
{
int arr1[] = {1, 2, 3, 4, 5};
int arr2[5];
memcpy(arr2, arr1, sizeof(arr1));
for(int i = 0; i < 5; i++)
{
printf("%d ", arr2[i]);
}
return 0;
}
```
输出结果为:1 2 3 4 5
2.使用for循环拷贝自定义类型的数组
```c++
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
Person(string name, int age)
{
m_name = name;
m_age = age;
}
string getName()
{
return m_name;
}
int getAge()
{
return m_age;
}
private:
string m_name;
int m_age;
};
int main()
{
Person arr1[] = {Person("Tom", 18), Person("Jerry", 20), Person("Mike", 22)};
Person arr2[3];
for(int i = 0; i < 3; i++)
{
arr2[i] = arr1[i];
}
for(int i = 0; i < 3; i++)
{
cout << arr2[i].getName() << " " << arr2[i].getAge() << endl;
}
return 0;
}
```
输出结果为:
Tom 18
Jerry 20
Mike 22
阅读全文