《一》C语言的类型转换
隐式类型的转换,
显示类型的转换,
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
int i = 1;
//隐式类型转换,相关类型,
double d = i;
printf("%d,%.2f\n", i, d);
int* p = &i;
//显示类型的强制转换,不想管类型
int assress = (int)p;
cout << assress << endl;
}
2 c++强制类型转换
标准c++为了加强类型转换的可视性,引入了四种命名的强制类型转换操作符。
static——cast,reinterpret_cast , const_cast,dynamic_cast;
首先,我们看下面的一段代码:
int main()
{
const int a = 3;
int*p = const_cast<int*>(&a);
*p = 4;
cout << a << endl;
return 0;
}
我们先看一下程序,结果是什么?
我相信,有很多的同学,都认为是4,但是结果却是3,那该怎么解决这个问题吗?我们继续往下面看。
*int main()
{
volatile const int a = 3;
intp = const_cast<int>(&a);
p = 4;
cout << a << endl;
return 0;
}
加入“ volatile ”关键字——挥发物。
这个也是比较爱考的,所以下来,没事的同学,可以在百度上面在深入了解一下。