![](/img/trans.png)
[英]why does passing char[] not work, but (deprecated conversion) char* does?
[英]iterate char** why does this work?
我拿起这段代码,将其复制到程序中。 这似乎是我遍历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")
{
// ...
}
看起来像是一种魅力,但我不明白为什么! vArray应该包含地址吗? 和* vArray的“字符串”值。 那么,为什么当我用其值“和”一个地址时却能给我带来平等的机会?
vArray && *vArray
等效于(vArray != NULL) && (*vArray != NULL)
首先检查指针vArray
不为NULL
,并假设其不为NULL
,然后检查其指向的指针是否为NULL
。
循环条件是
vArray && *vArray
这基本上是
(vArray != 0) && (*vArray != 0)
如果char**
指针为非null并指向非null的char*
,则为true。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.