2
1.NODE **ptr = (NODE **)node
NODE  *delPtr = *ptr;
obj->addList(delPtr->strKey);

2.NODE **ptr = (NODE **)node;
obj->addList(*ptr->strKey);

私が作成しているコア ダンプ プログラムについてこれを分析していますが、機能は同じようです。これら2つの宣言の違いは何ですか? 2 つ目もコア ダンプを実行しますか? 助けてください。

4

1 に答える 1

6

演算子の優先順位->は、逆参照演算子の前に評価されると言う*ので、

obj->addList(*ptr->strKey);

実際には

obj->addList(*(ptr->strKey));

この形式を使用する場合は、括弧を使用する必要があります*ptr

obj->addList((*ptr)->strKey);
于 2013-08-29T10:14:23.473 に答える