lol*_*lol 1 c++ arrays pointers
我正在学习OOP课程,但我是C++的新手.我的导师向我们介绍了C++中的字符数组.他说,要在C++中获取字符数组的基址,可以使用以下任一方法:
char* a = "Test String";
cout << &a; // Prints base address of char array
Run Code Online (Sandbox Code Playgroud)
要么
char* a = "Test String";
cout << (int*)a;
Run Code Online (Sandbox Code Playgroud)
但当我尝试两个相同的char数组时,我得到了不同的结果.两者有什么区别?
Ser*_*eyA 12
改变教练.这是无稽之谈.第一个片段采用指针的地址(而不是字符数组).第二个片段将char指针转换为指针int并打印转换后的指针.
这样做的可能原因是,如果您尝试打印指针char,编译器将选择一个特殊的重载operator <<并打印字符串而不是指针.但是,我宁愿把它转换void*为int*.原因是转换void*可以更安全地完成static_cast.