我有这段代码:
for(i=0;i<10000;i++){
double number=distribution(generator);
++p[int(nintervals*number)];
}
但我不知道++如何影响数组。有人可以解释吗?
++
只是一个运算符,将在您的示例中对数组元素进行运算。
因此,这三行等效:
p[int(nintervals*number)]++;
p[int(nintervals*number)] += 1;
p[int(nintervals*number)] = p[int(nintervals*number)] + 1;
因此,++
运算符不对数组进行操作;它对您已建立索引的数组的元素进行操作。我希望这很清楚。
现在,如果将++
操作符绑定到数组,如以下示例所示,则产生的动作将大不相同。
(++p)[int(nintervals*number)];
这将增加指针p
,然后索引到(p + 1)指向的内存中。该索引处的值不会更改,因此该代码的结果是简单地增加指标p
。这可能是您想要的,也可能不是。可能不是,但这只有在您与我们分享如何分配和分配指针p
及其相邻的内存时才能确定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句