c++ 中一些有趣的现象

大家好,今天跟大家分享一些C++中有趣的现象,其中有的很可能被面试官当作面试题。
现象一
问题:m等于多少?
现象二
问题:最后打印出的m的值是多少?
现象三
问题:最后打印出的m的值是多少?
答案分别是1,1,1。
对于现象一,C++标准委员会规定空类占一个字节,用以保证每个实例在内存中都有独一无二的地址。举例说明:
对于现象二和现象三,因为sizeof 和 decltype是编译时求值关键字,而 m++ 属于运行时表达式,且sizeof (m++) 以及 decltype (m++) 从语法上讲都是合法的,所以笔者猜C++标准委员会保留了编译期的表达式求值而舍弃了运行时的表达式求值。
水平有限,欢迎交流指正。