mor*_*ndg 0 c++ arrays pointers glib
我拿起了这段代码,我将其复制到我的程序中.这似乎是我通过char**迭代的一种新方式:
char** vArray; // The array containing values
// Go throught properties
if(szKey == "KeyMgmt")
{
vArray = (char**)g_value_get_boxed((GValue*)value);
for( ; vArray && *vArray ; vArray++) // Why does this work ?!
pWpaKey->addKeyMgmt(std::string(*vArray));
}
else if(szKey == "Pairwise")
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
它看起来像一个魅力,但我不明白为什么!假设vArray包含一个地址吗?并且*vArray"字符串"值.那么,为什么当我"和"一个有价值的地址时,这给了我一个平等的呢?
vArray && *vArray 相当于 (vArray != NULL) && (*vArray != NULL)
它首先检查指针vArray不是,NULL并且假设它不是NULL,检查它指向的指针不是NULL.