#include <iostream>
using namespace std;
struct point {
int val;
point* next;
point(int x) :val(x), next(NULL) {}
};
int main() {
point *n1=new point(2);
point *n2=new point(3);
point *n3=new point(4);
point *n4=new point(5);
n1->next = n2; n2->next = n3; n3->next = n4; n4->next = n1;
cout << n1->val << endl;
cout << n2->val << endl;
cout << n3->val << endl;
cout << n4->val << endl;
cout << "the address of n4 point to ; " << n4-> next << endl;
cout << "the address of n2 is ; " << &n1->val << endl;
cout << "&n1 is " << &n1 << endl;
return 0;
}
请问这道题中为什么&n1和&n1->val的值不相等
&n1->val是获得n1的成员变量val的地址
&n1是获得n1指针的地址
&n1
是结构体 n1
的内存地址; &n1->val
是结构体 n1
中 val
的内存地址。