簡體   English   中英

迭代char **為什么會起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM