结构体与类转化成字符指针char *

#include
using namespace std;
class node {
public:
    
    char c[1024];
    int length;

    node() {
        length = sizeof(node);
    }
};
int main() {
    node n;
    cin >> n.c;

    char* c = (char*)&n;	//将n的地址转换成char*,赋值给c
    cout << &n << endl; 
    cout << (int*) c << endl;//打印c指向的地址,可以看出与n的地址一样
    node *p = (node*)c;     //用一个node* 接收c的值 ,此时p就是指向n的指针
    cout << p->c << endl;  //打印字符串
    return 0;
}

输出结果:

hello
0133F798
0133F798
hello

1.如果给cout提供一个指针,它将打印指针所指向的地址单元的地址,但如果指针类型为char *,则cout将打印char *指针所指向的字符串。
2.如果要显示char *指针所指向的地址单元的地址,需要将char *类型的指针强制转化为另一种类型的指针,我将char *类型的指针强制转化为int *类型指针。

你可能感兴趣的:(c++,开发语言)