C++ 类型转换

来源:百度知道 编辑:UC知道 时间:2024/06/17 05:25:04
前面省略~~
int main()
{
char ch = 'a';
int a = static_cast<int>(ch);
cout << a << endl;
int b = 97; //a的ASC码是97
char chr = static_cast<char>(b);
cout << chr << endl;
return 0;
}
这个程序我试过,输出是 a 97;
不知道什么原因,怎么就是转换不了呀!
我的是Microsoft Visual C++编译器!
谢谢!
我用我的编译器试过N次了,输出就是a 97啊!
也就是说静态强制转换转换不了嘛!
郁闷啊,没人给我回答了!你们没说对呀~~
上面这串代码,输出绝对的a 97

输出是 a 97:
输出是
97
a
因为a是int型
cout << a << endl;
输出是97
chr是char型
cout << chr << endl;
输出是a
----------------
Visual C++编译器:

#include <iostream>
using namespace std;
int main()
{
char ch = 'a';
int a = static_cast<int>(ch);
cout << a << endl;
int b = 97;
char chr = static_cast<char>(b);
cout << chr << endl;
return 0;
}

如果你是想把chr输出为a,而不是97的话,就这么改下。

int main()
{
char ch = 'a';
int a = static_cast<int>(ch);
cout << a << endl;
int b = 97;
char chr = b; //直接赋值就好了,编译器会强制转换的。

或者直接改为char chr = 97;

cout << chr << endl;
return 0;
}

输出明明是
97
a

你是想要输出结果为:97 a 对吧?
试试我的这一段吧!
#include <iostream>
using namespace std;

vo