链表C+中的内存地址+; 我在C++中创建了一个非常简单的链表示例来实践一些面试问题。我有一个奇怪的问题,我似乎无法真正理解: while( cur ) { cout << "Index: " << indx << endl << "Current Add:\t" << &cur << endl << "Value:\t\t" << cur->val << endl << "Next Add:\t" << &cur->next << endl << "Ran Add:\t" << &cur->ran << endl << "Ran Val:\t" << cur->ran->val << endl << endl; cur = cur->next; ++indx; } while(cur) { cout

链表C+中的内存地址+; 我在C++中创建了一个非常简单的链表示例来实践一些面试问题。我有一个奇怪的问题,我似乎无法真正理解: while( cur ) { cout << "Index: " << indx << endl << "Current Add:\t" << &cur << endl << "Value:\t\t" << cur->val << endl << "Next Add:\t" << &cur->next << endl << "Ran Add:\t" << &cur->ran << endl << "Ran Val:\t" << cur->ran->val << endl << endl; cur = cur->next; ++indx; } while(cur) { cout,c++,memory-management,linked-list,C++,Memory Management,Linked List,您正在打印: "Current Add:\t" << &cur << endl << 该指针的地址(不是它指向的地址!)当然不会更改。您可能打算写入: "Current Add:\t" << cur << endl << “当前添加:\t”您正在打印: "Current Add:\t" << &cur << endl << 该指针的地址(不是它指向的地址!)当然不会更

您正在打印:

"Current Add:\t" << &cur << endl <<
该指针的地址(不是它指向的地址!)当然不会更改。您可能打算写入:

"Current Add:\t" << cur << endl <<
“当前添加:\t”您正在打印:

"Current Add:\t" << &cur << endl <<
该指针的地址(不是它指向的地址!)当然不会更改。您可能打算写入:

"Current Add:\t" << cur << endl <<

“当前添加:\t”当前节点的地址是
cur
的值。您正在打印
&cur
——变量
cur
本身所在的地址。当然,
cur
不会在内存中神奇地跳转——它的值会改变,但它的地址不会改变。当前节点的地址是
的值cur
。您正在打印
&cur
——变量
cur
本身所在的地址。当然,
cur
不会在内存中神奇地跳转——它的值会改变,但它的地址不会。哦,上帝,当然,愚蠢的错误。感谢您的快速回答。哦,上帝,当然,愚蠢的错误。感谢您的帮助答案很快。