我在C++中遇到了一個問題。我讀了一些代碼,但有一個非常有線的使用指針。代碼如下:在C++中大於零的指針,是什麼意思?
double* marginalProbability =
new double [10 * sizeof(marginalProbability[0])];
memset(marginalProbability, 0, 10 * sizeof(double));
//................
//.................
if(marginalProbability>0)
printf("larger");
else
printf("smaller");
我要問的問題是什麼呢意味着if(marginalProbability>0)
。它是一個大於零的指針。我認爲在一個普通的編譯器中,沒有地址等於零。或者還有其他含義嗎?否則,這條線似乎毫無意義。謝謝。
看起來像他們的意思'if(* marginalProbability> 0)' – Almo 2012-03-09 16:33:28
數組的新運算符會自動計算元素的大小,所以它應該是一個10'雙精度數組'的新double [10] 。你現在可能分配了80個雙打的東西。另外,std :: fill(marginalProbability,marginalProbability + 10,0.0);'memset()'更方便。 – 2012-03-09 16:35:49
@AndréCaron:''new double [10]()'比'std :: fill()'方便。 – 2012-03-09 16:46:01