C++编程二十问
设计“C++编程二十问”目的在于检验对C++编程规范的熟悉度,这些问题在C++11规范之内,不涉及软件设计算法和思想方面,但偏向科学计算应用。 在不查阅资料的情况下,回答正确不低于18个问题的为优秀水平,回答正确10个以下的为不合格。 答题可发到QQ群:1055763748,会有回复评分及讨论。
二十道问题
- C++11规范中,int、long和long long三种整型数的内存表示占据的最小比特位分别是多少?
- C++11规范中,float、double和long double三种浮点数表示的最小有效位分别是多少?
*ptr++等价于*(ptr++)吗?- 为何++a性能优于a++?
- class和struct关键字定义类的区别是什么?
int a={0};和int a{0};两种定义有何区别?- C++使用static_cast/const_cast/reinterpret_cast代替C旧时转换操作有什么好处?
- 使用make_type<> 代替显式使用new和delete type有什么好处?
const int *v; int const * v; int * const v;这三种const修饰有何区别?- C++中对于cctype和ctype.h头文件中定义的同一类型,使用上有何不同?
- 为什么C++引入了shared_ptr还需要引入weak_ptr?
- GCC中constexpr函数定义在某个函数中是否有问题?
- 内置变量nullptr的类型是什么?
- std::vector的size()是返回size_t类型吗?
- std::vector和std::string的预分配机制中,capacity()返回可保存的元素个数是否包含已存在的元素个数[即size()]?
std::string s1("value");和std::string s1="value";是调用同一个构造函数吗?std::string s2(s1);和string s2=s1;是调用同一个构造函数吗?std::pair<>和std::tuple<>的区别,后者变量中能够定义最多几个元素?std::pair<int,float> a(12,11.7);和std::make_pair(12,11.7);生成的对象类型有何不同?- cpp -v /dev/null -o /dev/null输出什么内容,有何作用?
徐顺,初版写于2020年8月26日,北京中关村,最后修改于 2024年9月7日,