试题总结

来源:互联网 发布:sql server left join 编辑:程序博客网 时间:2024/05/24 15:41

1. 以下代码哪个等同于 int i = (int)p; p 的定义为 char *p

A. int i = dynamic_cast<int> (p)

B. int i =static_cast<int>(p)

C. int i =const_cast<int>(p)

D. int i = reinterpret_cast<int>(p)

 

编程分析:

#include <iostream>using namespace std;void main(void){char *p = "a";int i = (int)"a";int i2 = (int)p;//int i3 = static_cast<int>(&p);//failedint i5 = reinterpret_cast<int>(&p);cout << p <<endl;cout << &p <<endl;cout << i << endl;cout << i2 <<endl;cout << i5 <<endl;}


 

 reinterpret_cast一定不改变原数据,直接(int)可能改变原数据。