c++ - 在运行“n=n++”时,它会输出“n”的原始值
问题描述
int n = 1;
n = n++;
cout<<n<<endl;
output:1
我已经在谷歌上搜索过了。分析说"n = n++" is:First assign n to n, then n add 1.
我不知道为什么它给出的输出是 1,而不是 2。
解决方案
此代码是未定义的行为。编译器可以做任何事情,甚至可以让恶魔飞出你的鼻子。要了解有关此的更多信息,您可以阅读https://en.wikipedia.org/wiki/Sequence_point
推荐阅读
- python - 如何从 Anaconda 的 Base 环境中删除不需要的 python 包
- mysql - SQL 选择父项作为列名,子项作为值
- swift - 如何使用 sqlite 将我的图像保存到数据库中?
- javascript - 尽管正在等待,但承诺尚未解决
- java - 在 Java 11 中关闭打开的程序后如何反序列化对象
- ruby-on-rails - Rails 5:ajax 发布请求无法正常工作
- react-native - scrollToLocation 在 react native 的 sectionlist ref 中未定义,在 flatlist 中也没有
- php - Ubuntu 18.04 Laravel 5.7 nginx 1.14 Laravel 路由不工作
- xaml - 如何使用 GeometryDrawing 在 wpf 中绘制“齿轮”形状
- angular - Angular 7:“找不到具有未指定名称属性的控件”