What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
cs:programming:cpp:courses:cpp_basic_deep:chpt_4 [2024/10/03 05:49] – [三元条件操作符] codingharecs:programming:cpp:courses:cpp_basic_deep:chpt_4 [2024/10/03 06:03] (当前版本) – [sizeof] codinghare
行 395: 行 395:
 </code> </code>
 ==sizeof== ==sizeof==
 +  * 返回类型 / 对象 / 表达式返回值占用的字节数
 +<code cpp>
 +int x;
 +// 推荐统一使用带括号的形式
 +sizeof(int);
 +sizeof(x);
 +// 对表达式评估时,不会真正执行求值
 +int* ptr = nullptr;
 +// 等价 sizeof(int)
 +sizeof(*ptr);
 +</code>
 +==域操作符==
 +用于访问域内的变量
 +<code cpp>
 +int = x;
 +namspace ABC
 +{
 +   int x;
 +}
 +int main()
 +{
 +   int x;
 +   int y = x; // local
 +   int y = ::x; // global
 +   int y = ABC::x // ABC
 +}
 +</code>
 +===C++17表达式求值顺序===
 +  * 之前的限定求值:逗号,三元条件,逻辑与 / 或(短路)
 +  * C++17 新引入的限定
 +<code cpp>
 +// 先求 e1,再求 e2
 +e1[e2];
 +e1.e2;
 +e1.*e2;
 +e1->*e2;
 +e1<<e2;
 +e1>>e2;
 +e2=e1 / e2+=e1/ e2*=e1;
 +</code>
 +   * newType(e) 会先分配内存再求值