Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 什么是++;resultLen*sizeof(float));你的意思是什么?_C_Sizeof - Fatal编程技术网

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