在C++中,使用指针传递数组到函数是一种常见的做法,特别是当你需要修改数组的内容或者当数组的大小很大,不希望复制整个数组时。
1、简介:
#include <iostream>
using namespace std;
//函数声明,接收指向double类型数组的指针和数组的大小
void modifyArray(double* arrPtr, int size);
//函数定义,接收指向double类型数组的指针和数组的大小
void modifyArray(double* arrPtr, int size)
{
//使用指针访问和修改数组元素
for (int i = 0; i < size; ++i)
{
arrPtr[i] *= 2; // 将数组中的每个元素乘以2
}
}
int main()
{
// 定义一个数组
double myArray[5] = {1.0, 2.0, 3.0, 4.0, 5.0};
// 计算数组大小
int arraySize = sizeof(myArray) / sizeof(myArray[0]);
// 调用函数,传递数组指针和大小
modifyArray(myArray, arraySize);
// 输出修改后的数组
for (int i = 0; i < arraySize; ++i)
{
std::cout << "myArray[" << i << "] = " << myArray[i] << std::endl;
}
return 0;
}
2、项目实例中的用法:
//创建一个Electrickinematics类
class Electrickinematics
{
public:
//displacementToAngle:电缸或电机位移输出到关节角度的转换;
//参数类型为指针
void displacementToAngle(double *parameter_input, double *theta_input);
};
//定义两个数组
double theta_input[7];
double parameter_input[7];
//定义函数displacementToAngle
void Electrickinematics::displacementToAngle(double *parameter_input, double*theta_input)
{
//theta_input[]数组的第一个元素(即第一个角度值)设置为0,
theta_input[0] = 0;
theta_input[1] = parameter_input[1];
theta_input[2] = parameter_input[2];
theta_input[3] = parameter_input[3];
theta_input[4] = parameter_input[4];
theta_input[5] = parameter_input[5];
theta_input[6] = parameter_input[6];
//输出数组theta_input中索引为1到6的元素的值,并将它们与对应的索引一起打印出来
for(int i=1;i<=6;i++)
{
std::cout<<"displacementToAngle theta_["<<i<<"]="<<theta_input[i]<<endl;
//打印当前索引 i 和对应的 theta_input[i] 的值。
}
}
//函数调用,利用指针传递数组
endPosture_temp.displacementToAngle(parameter_input,theta_input);