#include <iostream>
using namespace std;
int main()
{
int a = 10;
cout << (int)&a << endl;
}
为什么我将地址转为int输出会报错呢,别人的都没有报错?
尝试写为
#include <iostream>
using namespace std;
int main()
{
int a = 10;
cout << (long long int)&a << endl;
}
因为别人的编译系统是32位的,32位地址是4字节,可以转为int类型
而你的编译系统是64位的,64位地址是8字节,用int会溢出,要转为long long类型
cout << (long long )&a << endl;
报的是什麽错呢?
可能你的错误级别设置的高,别人是警告,你把警告设定为错误