C++中未解之谜
来源:互联网 发布:单片机嵌入式培训 编辑:程序博客网 时间:2024/05/17 06:49
下面的题目是刚刚在群里看到的,可能了解的深入了就知道原因了,暂时不明白,还请大家不吝赐教。
int b=4;cout<<b++<<b++<<b<<endl;//输出546
而自己重载++操作符可以正确输出:
class Int{ public: friend ostream &operator<<(ostream&out,Int i){out<<i.i;return out;}const int operator++(int){int res=i;i++;return res;}Int (int ii):i(ii) {}int i;};void main(){Int i(4);cout<<i++<<i++<<i;//输出544}
根据同学的讨论和自己的猜想,应该是对有自增自减运算的表达式,先从右至左入栈,然后从左至右依次出栈,并输出b
有人给出编译代码,然而我并看不懂,留着以后看吧 或者谁看懂了指导一下
int main(){ int b = 3;b-=b++;cout<<b<<endl;b += b *= b -= b++; cout << b<<endl;b=4;cout<<b--<<""<<b--<<b--<<b<<endl;b=4;cout<<b++;cout<<b++<<endl;system("pause");return 0;}
想玩的同学再看看上面的代码吧。我不行了,我跟不上他们的步伐了,此刻我更加确信自己不适合写代码。~~~~(>_<)~~~~
0 0
- C之谜题(持续更新)
- C语言之认识C
- C语言之四书五经
- C语言之四书五经
- C语言之四书五经
- C语言之数据类型
- C语言之指针
- 正则表达式之C#
- C语言之解析
- .net学习之c#
- c#之路
- C语言之诡异
- C#、Java之比较
- 学习笔记之c
- C语言之四书五经
- C程序设计之四书五经
- C语言之指针
- C#、Java之比较
- 原型:char *strrchr(const char *str, char c); http://blog.csdn.net/hgj125073/article/details/8443912
- 数据结构之---C语言实现归并排序
- plsql链接oracle Could not load "……\bin\oci.dll"异常
- Matlab cell函数
- Linux下查看和添加PATH环境变量
- C++中未解之谜
- UML类图几种关系的总结
- react-native试玩(31)-访问相册API
- iOS测试-XCTest
- oracle中的exists和not exists和in用法详解
- export CROSS_COMPILE=arm-linux-gnueabi- 之后,无法编译kernel
- IE兼容性
- Maven 手动添加 JAR 包到本地仓库
- 微信公众帐号开发教程第18篇-应用实例之音乐搜索