关于一个c++的问题
来源:百度知道 编辑:UC知道 时间:2024/05/14 19:30:42
m=1;
cout<<m++<<m++<<endl;
输出的结果是2 1;
而cout<<m++<<endl;
cout<<m++<<endl;输出的是1 2;
望知道的人解释下第一种的原因,谢谢!!
cout<<++m<<++m<<endl;为什么是3 3.。。。。
我用的是visual studio 2008
cout<<m++<<m++<<endl;
输出的结果是2 1;
而cout<<m++<<endl;
cout<<m++<<endl;输出的是1 2;
望知道的人解释下第一种的原因,谢谢!!
cout<<++m<<++m<<endl;为什么是3 3.。。。。
我用的是visual studio 2008
先输出右边的m,再把m+1
然后输出此时左边的m (此时m = 2),再把m+1
=======================
哈,我答了等于没答?
他问的不是这个吗?
<<运算符的结合性确实是从右至左。
从右往左读入,再从左往右输出.
比如 a=1 b=2 c=3
读入顺序 从右到左
3 2 1
输出时 再反一下
1 2 3
结果你看到的就是1 2 3
m++ m++ 从右往左就是1 2 然后输出就是2 1了
这个取决于编译器. . 不同编辑器顺序不一样
同意supersunkaiyua的说法,因为在我计算机上输出的都是1 2,没有输出2 1,
只与计算机有关或者是编译器!
我在vc2008上运行
int m=1;
cout<<m++<<m++<<endl;
输出结果是1 1
如果结果像你说的那样,只有一种可能:那就是cout<<m++<<m++<<endl是从右向左结合运算的。