我在c ++中遇到了一个问题.我读了一些代码,但有一个非常有线的指针用法.代码如下:
double* marginalProbability =
new double [10 * sizeof(marginalProbability[0])];
memset( marginalProbability, 0, 10 * sizeof(double) );
//................
//.................
if(marginalProbability>0)
printf("larger");
else
printf("smaller");
Run Code Online (Sandbox Code Playgroud)
我问的问题是它是什么意思if(marginalProbability>0).它是一个大于零的指针.我认为在普通编译器中,没有地址等于零.或者还有其他含义吗?否则,这条线似乎毫无意义.谢谢.
我认为这是一个错误,原作者意味着:
if(marginalProbability[0]>0)
printf("larger");
else
printf("smaller");
Run Code Online (Sandbox Code Playgroud)
marginalProbability如果他们已经memset()无条件地召集它,我不明白为什么他们会测试是否有效.此外,使用更大和更小的单词表示值的比较,而不是指针.