刚学C++,问一下关于C++输出数组地址的问题,求解答
#include <iostream>using namespace std;
int main()
{
char a = {'a','b','c','d','e'};
int ar = {1,2,3,4,5};
char *p = a;
int *q = ar;
cout<<p<<endl;
cout<<a<<endl;
cout<<reinterpret_cast<unsigned long>(p)<<endl;
cout<<q<<endl;
cout<<reinterpret_cast<unsigned long>(q)<<endl;
return 0;
}
我想输出的明明就是数组的地址,可是为什么第一个cout的输出结果会是数组中的所有元素???可是整型数组的结果又正确呢??
还有一个问题, reinterpret_cast<unsigned long>(p)这个是不是就相当于C语言中的强制类型转换??相当于(unsigned long ) cout<<&p<<endl; //取地址
cout<<reinterpret_cast<unsigned long>(q)差不多久是强制类型转换,但是好像不太建议使用
可以直接这样转换cout << (unsigned long)q << endl;
页:
[1]