C 什么是++;resultLen*sizeof(float));你的意思是什么?
你能解释一下C 什么是++;resultLen*sizeof(float));你的意思是什么?,c,sizeof,C,Sizeof,你能解释一下++resultLen*sizeof(float)是什么意思吗 if (mas[i] > mas[i + 1]) { result = (float*)realloc(result, ++resultLen * sizeof(float)); result[resultLen - 1] = mas[i]; } 这意味着:将resultLen的值增加1,然后将resultLen的新值与浮点使用的字节数相乘 result = (float*)realloc(re
++resultLen*sizeof(float)
是什么意思吗
if (mas[i] > mas[i + 1])
{
result = (float*)realloc(result, ++resultLen * sizeof(float));
result[resultLen - 1] = mas[i];
}
这意味着:将
resultLen
的值增加1,然后将resultLen
的新值与浮点使用的字节数相乘
result = (float*)realloc(result, ++resultLen * sizeof(float));
result
正在realloc
ed中
++resultLen * sizeof(float)
与
(++resultLen) * sizeof(float)
因为(++
的优先级高于*
)resultLen
首先递增,然后将该值乘以sizeof(float)
。
旁注:在C语言中,.++resultLen等同于(resultLen+1) 所以方程变成了 (结果n+1)*sizeof(浮动) sizeof(float)通常为4,但取决于操作系统和体系结构,假设为4。 其中: 4*resultLen+4
HTH运算符sizeof返回在执行代码的系统上传入的类型参数的大小。通常一个浮点数是4字节 运算符
++
将递增变量。如果它放在变量后面,变量将在其参与的算术运算之后递增。在这里,它放在变量之前,因此在乘法之前递增
因此,您正在为“result”数组重新分配内存空间,将其大小增加1(float)。您不了解哪一部分
++
或sizeof
或其他什么?++resultLen*sizeof(float)不强制转换realloc
的结果。我的意思是,你知道++
操作符做什么吗?您知道操作员的大小吗?请准确指定您不了解的部分。sizeof
是运算符,而不是函数<代码>++i的计算结果为i+i
,在下一个序列点之前的某个点,将更新i
。