前言

话说这个真的是合法的吗,csdn有和谷歌搜索引擎和StackOverflow签署用户数据共享协议么lmfao
而且我写这篇文章过程中查资料的工作语言全程使用英文
他还贴心的翻译了一下,展现在旁边的“热度”榜上,我真的哭死
正文
本系列主要是记录面试题,以及本人感觉可以作为面试题考点的东西
为什么++a是左值而a++是右值,请从编译原理的文法分析的角度回答
答:首先看现象,++a是先加后返回,a++是先返回后加
也就是说对于编译器待分析的表达式a=++b会被化简为a=b+1而先返回后加,类似于a=b b=b+1 不能化简为一个表达式
而在不考虑常量的情况下,左值就是一个表达式或者等价于表达式的东西,b++在上下文中无法化成一个表达式,所以他是右值
//无法编译,仅供参考
int operator ++ (int& n

本文是作者关于C++学习的总结,特别是聚焦于左值与右值的区别,从编译原理角度进行解释。文章讨论了为何++a先加后返回,而a++先返回后加,并分析了程序变量暴露给用户的安全性问题。通过示例解释了如何在不暴露变量的情况下优化性能,同时提醒注意程序安全。
203

被折叠的 条评论
为什么被折叠?



