c++和js中参数入栈顺序区别

来源:互联网 发布:linux 目录占用空间 编辑:程序博客网 时间:2024/06/15 03:31
一.原来一直c++开发,偶尔会遇到参数入栈顺序的问题,而c++是右侧函数先入栈.例子如下:
#include <iostream>using namespace std;int left(int& a){    a *= 2;    cout << "left " << a << endl;     return a;  //10}int right( int& a){    a += 2;    cout << "right " << a << endl;    return a; //5}int _plus( int a = 0, int b = 0 ){    cout << "_plus " << a << " " << b << endl;    return a + b; //15}int main(){    int a = 3;    cout << _plus( left(a), right(a) ) << endl; //15    int b;    cin >> b;}

输出结果:
right 5
left 10
15

c++的入栈顺序先right后left,所以先加后乘,结果为15.

二.由于先入为主,在后来学习js的时候,也遇到同样的问题结果入栈书序顺序为先成左后右而且全程是引用


function test7(){function left(a){a *= 2;console.log( "left()", a);return a;}function right(a) {a += 2;console.log( "right()", a);return a;}function _plus( a = 0, b = 0 ){console.log( "_plus a:" + a + " b:" + b );return a + b;}var a = 3;console.log( _plus( left(a), right(a) ) );}test7();

输出结果:

left() 6
right() 5
_plus a:6 b:5
11

js中参数先左后右,结果与c++不同.而且默认是引用传值,所以更应该小心.








阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 刮板式提升机 刮板输送机厂家 埋刮板除渣机 倾斜刮板输送机 埋刮板输送机设计 大功率刮板输送机 大型刮板输送机 刮板输送机40t 双链刮板输送机 150刮板输送机 刮板式蒸发器 煤炭刮板运输机 刮板式干燥机 630刮板运输机 双层刮板输送机 刮板输送机机头部 xgz刮板输送机 刮板输送机紧链装置 刮板输送机是什么 井下刮板输送机 764刮板输送机 sgw刮板输送机 刮板输送机紧链 埋刮板输送机型号 摊铺机刮板大链条 刮板造型 刮板式取料机 埋刮板输送机图片 刮板输送机设计 刮板输送机 型号 刮板输送机的安装 水平刮板输送机 煤机刮板 刮板输送机图片 刮板式速冻机 刮板输送机减速机 刮板输送机维护 刮板堆取料机 粮食刮板输送机 刮板输送机说明书 30t刮板输送机