先思考一下如下代码, 思考一下, 印象更深刻哦!
#include <iostream>
int main() {
float a{2.58941};
float b{-2.5681};
float c{3.56162};
int x, y, z;
// c 风格格式强制转换:
x = (int)a;
// c++ 风格格式强制转换:
y = int(b);
// c++ 更为严格的类型转换符:
z = static_cast<int>(c);
std::cout << "未转换之前的小数值: " << a;
std::cout.put('\t');
std::cout << b;
std::cout.put('\t');
std::cout.put('\t');
std::cout << c << std::endl;
std::cout << "转换之后的值为 : " << x;
std::cout.put('\t');
std::cout.put('\t');
std::cout << y << "\t\t" << z << std::endl;
}
1. c 风格的类型转换:
(typeName) value
示例如下:
int a = (int) 3.141592;
std::cout << a << endl;
输出;
3
2. c++风格的类型转换符:
typeName (value)
示例如下:
int a = int (3.141592)
std::cout << a << std::endl;
输出:
3
3. 另一个类型转换:
static_case <typeName> (value)
示例:
int a = static_case <int> (3.141592);
std::cout << a << std::endl;
输出: 3
练习代码:
#include <iostream>
int main() {
int a{(int)3.141592};
int b{int(3.141592)};
int c{static_cast<int>(3.141592)};
std::cout << a << "\t" << b << "\t" << c << std::endl;
}