作业帮 > 综合 > 作业

下列代码的含义double* xyz_scale = 0;if (strcmp(argv[i],"-scale") ==

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 11:48:53
下列代码的含义
double* xyz_scale = 0;
if (strcmp(argv[i],"-scale") == 0)
{
xyz_scale = new double[3];
\x05\x05\x05i++;
\x05\x05\x05sscanf(argv[i],"%lf",&(xyz_scale[2]));
\x05\x05\x05xyz_scale[0] = xyz_scale[1] = xyz_scale[2];
}
argv应该是命令行参数,比较每一个(这个代码应该在for语句之中)参数是否是"-scale",如果不是(==0),创建double指针数组,并将参数赋值给这个数组.
再问: sscanf(argv[i], "%lf", &(xyz_scale[2])); //是将参数argv[i]的值以"%lf"形式赋给“&(xyz_scale[2])”这个地址中的xyz_scale[2]变量吗? xyz_scale[0] = xyz_scale[1] = xyz_scale[2]; //使xyz_scale[3]数组元素都等于argv[i]值?
再答: sscanf是字符串格式化函数,将字符串argv[i]转换成double浮点数放到xyz_scale[2]里面。 第二个语句更简单啊,就是0/1两个都赋值成2的,三个数一样。