#写线性表过程中遇到的问题

img


在创建线性表的过程中,以地址的形式输出L.add和L出现了两种不同的运行结果,L.add表示的是储存空间的起始地址,但 L 以地址输出表示什么?

L有自己的地址,而L.add也有自己的地址,两个地址是不一样的
你这样写的话,L.add是L的一个元素,并不是L的首地址


struct St_Test {
        int* a;
        int b;
    };
    St_Test mySt;
    int m = 1;
    mySt.a = &m;
    cout << "mySt: " << &mySt << endl;
    cout << "mySt.a: " << mySt.a << endl;
    cout << "&mySt.a: " << &mySt.a << endl;
    getchar();

img


struct St_Test {
        int* a;
        int b;
    };
    St_Test mySt;
    int m = 1;
    mySt.a = &m;
    cout << "mySt: " << &mySt << endl;
    cout << "mySt.a: " << mySt.a << endl;
    cout << "&mySt.a: " << &mySt.a << endl;
    cout << "m: " << &m << endl;

img

题主,有一点点问题
你这样写是输出的L地址和L.add指向的地址
你把L.add前面加上取地址符,看看结果怎样
&L.add